home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / systems / minix / tcsh6033.zoo / tcsh-603.pl3 / tcsh.1 < prev    next >
Text File  |  1993-03-15  |  137KB  |  3,433 lines

  1.  
  2.  
  3.  
  4. TCSH(1)                                                   TCSH(1)
  5.  
  6.  
  7. N✓NA✓AM✓ME✓E
  8.        tcsh  - C shell with file name completion and command line
  9.        editing
  10.  
  11. S✓SY✓YN✓NO✓OP✓PS✓SI✓IS✓S
  12.        t✓tc✓cs✓sh✓h [ -✓-b✓bc✓cd✓de✓ef✓fi✓im✓mn✓nq✓qs✓st✓tv✓vV✓Vx✓xX✓X ] [ _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t _✓._✓._✓.  ]
  13.  
  14.        or
  15.        t✓tc✓cs✓sh✓h -✓-l✓l
  16.  
  17.        OS/Dependent Options
  18.        t✓tc✓cs✓sh✓h [ -✓-F✓F ] [ -✓-D✓Dn✓na✓am✓me✓e[✓[=✓=v✓va✓al✓lu✓ue✓e]✓] ]
  19.  
  20. D✓DE✓ES✓SC✓CR✓RI✓IP✓PT✓TI✓IO✓ON✓N
  21.        _✓T_✓c_✓s_✓h is an enhanced version of the Berkeley UNIX  C  shell
  22.        _✓c_✓s_✓h(1).   It  behaves exactly like the C shell, except for
  23.        the added utilities of:
  24.  
  25.          1)  Command line editing using Emacs-style commands.
  26.  
  27.          2)  Visual step up/down through the history list.
  28.  
  29.          3)  Terminal mode sanity checking and resetting.
  30.  
  31.          4)  Interactive command, file name and user name comple-
  32.              tion.
  33.  
  34.          5)   File/directory/user  list  in the middle of a typed
  35.              command.
  36.  
  37.          6)  Spelling  correction  of  command,  file,  and  user
  38.              names.
  39.  
  40.          7)   Lookup  of command documentation in the middle of a
  41.              typed command.
  42.  
  43.          8)  Enhanced history mechanism.
  44.  
  45.          9)  Automatic locking/logout after long periods of  idle
  46.              time.
  47.  
  48.          10)  Automatic  execution  of  a single command prior to
  49.              printing each prompt.
  50.  
  51.          11) Automatic periodic command execution.
  52.  
  53.          12) A new syntax for the prompt, and the ability to  set
  54.              the prompt for "while" and "for" loops.
  55.  
  56.          13) Time stamps in the history list.
  57.  
  58.          14)  An  addition  to  the syntax of filenames to access
  59.              entries in the  directory  stack,  and  the  ability
  60.              treat  symbolic  links  in  a sane way when changing
  61.  
  62.  
  63.  
  64. Cornell 6.03.00          20 November 1992                       1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. TCSH(1)                                                   TCSH(1)
  71.  
  72.  
  73.              directories.
  74.  
  75.          15) The ability to watch for logins and logouts by  user
  76.              or terminal on the machine.
  77.  
  78.          16)  A  scheduled  event  list, which specifies commands
  79.              which are to be executed at given times.
  80.  
  81.          17) A new builtin that does a subset of _✓l_✓s(1).
  82.  
  83.          18) An addition to the  file  expression  syntax  for  a
  84.              character not in a set of characters and the ability
  85.              to negate a globbing pattern.
  86.  
  87.          19) New automatically initialized environment  variables
  88.              _✓H_✓O_✓S_✓T and _✓H_✓O_✓S_✓T_✓T_✓Y_✓P_✓E.
  89.  
  90.          20) Commands for debugging terminal capabilities.
  91.  
  92.          21) Searching for the visual history mechanism.
  93.  
  94.          22) New builtins for the _✓w_✓h_✓i_✓c_✓h(1) and _✓w_✓h_✓e_✓r_✓e commands.
  95.  
  96.          23) Restarting a stopped editor with two keystrokes.
  97.  
  98.          24) Status line support
  99.  
  100.          25)  Automatic  execution  of a command when the current
  101.              working directory is changed.
  102.  
  103.          26) Native Language System support.
  104.  
  105.          27) Automatic process time reporting.
  106.  
  107.          28) OS Dependent Builtin Support
  108.  
  109.          29) Automatic window size adjustment
  110.  
  111.          30) Input files
  112.  
  113.          31) Additional/Undocumented Options
  114.  
  115.          32) Enhanced history/variable modifier expansion
  116.  
  117.          33) Programmable completion.
  118.  
  119.          34) Enhanced file inquiry operator.
  120.  
  121.        For a description of standard C-shell  features,  see  the
  122.        _✓c_✓s_✓h manual page.
  123.  
  124.  
  125. 1✓1.✓. C✓CO✓OM✓MM✓MA✓AN✓ND✓D L✓LI✓IN✓NE✓E E✓ED✓DI✓IT✓TI✓IN✓NG✓G
  126.        Commands  that  the  user types in may be edited using the
  127.  
  128.  
  129.  
  130. Cornell 6.03.00          20 November 1992                       2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. TCSH(1)                                                   TCSH(1)
  137.  
  138.  
  139.        same control characters that Gnu Emacs or vi uses.   Arrow
  140.        and  function key sequences are also allowed.  _✓T_✓c_✓s_✓h allows
  141.        this by setting the terminal to `CBREAK' mode and  reading
  142.        the input one character at a time.
  143.  
  144.        There  is  a  new  shell command, _✓b_✓i_✓n_✓d_✓k_✓e_✓y_✓, that allows the
  145.        user to redefine what any key does, or find out  what  any
  146.        or all of the keys do.
  147.  
  148.        Syntax:  bindkey [ -a ] [ -c ] [ -s ] [ -v ] [ -e ] [ -d ]
  149.        [ -k ] [ -l ] [ -r ] [ -- ] [ [ in-string | key-name  ]  [
  150.        out-string | command ]]
  151.  
  152.        If  no  values  are given all bindings are listed. If only
  153.        in-string is given, bindings for the in-string is  listed.
  154.  
  155.        Otherwise  it  binds the in-string to the given out-string
  156.        or command.  If out-string, this is treated  as  input  to
  157.        _✓t_✓c_✓s_✓h when in-string is typed. This may be used recursively
  158.        to currently a level of 10 deep.
  159.  
  160.        There are two basic key maps: the normal  and  alternative
  161.        one.  The  alternative  is  used  by  VI command mode. For
  162.        multi-character  input  the  basic  key  maps  contains  a
  163.        sequence-lead-in for the first character in the input.
  164.  
  165.        Options:
  166.            -a    bind in-string in alternative key map
  167.            -s    bind an out-string instead of a command
  168.            -c    bind a unix command instead of a command
  169.            -v    bind for default VI-mode
  170.            -e    bind for default emacs-mode
  171.            -k    interpret in-string as a symbolic arrow key name
  172.            -d    bind to compiled in default
  173.            -l    list functions available with short description
  174.            -r    remove the binding of in-string
  175.  
  176.        In  strings  control  characters   may   be   written   as
  177.        caret-<letter>  and  backslash  ("\")  is used to escape a
  178.        character as follows:
  179.               \✓\a✓a     bell character
  180.               \✓\n✓n     line feed (new line)
  181.               \✓\b✓b     back space
  182.               \✓\t✓t     horizontal tab
  183.               \✓\v✓v     vertical tab
  184.               \✓\f✓f     form feed
  185.               \✓\r✓r     carriage return
  186.               \✓\e✓e     escape
  187.               \✓\n✓nn✓nn✓n   character code in octal
  188.        In all other cases  \  escapes  the  following  character.
  189.        Needed  for  escaping  the  special  meaning  of  \ and ^.
  190.        Delete is written as "^?" (caret-question mark).
  191.  
  192.        _✓T_✓c_✓s_✓h always binds the arrow keys as defined by the termcap
  193.  
  194.  
  195.  
  196. Cornell 6.03.00          20 November 1992                       3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. TCSH(1)                                                   TCSH(1)
  203.  
  204.  
  205.        entry to:
  206.  
  207.              up arrow       up-history
  208.              down arrow     down-history
  209.              right arrow    forward-char
  210.              left arrow     backward-char
  211.  
  212.        except where these bindings would alter other single char-
  213.        acter bindings.  If this is not desired one can avoid  the
  214.        automatic  arrow  key  binding  using  _✓s_✓e_✓t_✓t_✓c to change the
  215.        arrow key escape  sequences  to  the  empty  string.   The
  216.        ansi/vt100 sequences for arrow keys are always bound.
  217.  
  218.        The  following is a list of the default emacs and vi bind-
  219.        ings.  Characters with the 8th  bit  set  are  written  as
  220.        M-<character>.   Note  however,  that  unlike with the old
  221.        _✓b_✓i_✓n_✓d command (see below), the syntax M-<character> has  no
  222.        special  meaning  to the _✓b_✓i_✓n_✓d_✓k_✓e_✓y command, and the bindings
  223.        for the sequence escape+<character> and  M-<character>  as
  224.        given  below  are  handled  separately  (although  the the
  225.        default bindings are the same).  The printable ascii char-
  226.        acters  not  mentioned  in the list are bound to the _✓s_✓e_✓l_✓f_✓-
  227.        _✓i_✓n_✓s_✓e_✓r_✓t_✓-_✓c_✓o_✓m_✓m_✓a_✓n_✓d function,  which  just  inserts  the  given
  228.        character  literally  into  the input line.  The remaining
  229.        characters are bound to the _✓u_✓n_✓d_✓e_✓f_✓i_✓n_✓e_✓d_✓-_✓k_✓e_✓y function,  which
  230.        only causes a beep (unless _✓n_✓o_✓b_✓e_✓e_✓p is set, of course).
  231.  
  232.              EMACS bindings
  233.  
  234.              "^@"                     ->  set-mark-command
  235.              "^A"                     ->  beginning-of-line
  236.              "^B"                     ->  backward-char
  237.              "^C"                     ->  tty-sigintr
  238.              "^D"                     ->  delete-char-or-list
  239.              "^E"                     ->  end-of-line
  240.              "^F"                     ->  forward-char
  241.              "^G"                     ->  is undefined
  242.              "^H"                     ->  backward-delete-char
  243.              "^I"                     ->  complete-word
  244.              "^J"                     ->  newline
  245.              "^K"                     ->  kill-line
  246.              "^L"                     ->  clear-screen
  247.              "^M"                     ->  newline
  248.              "^N"                     ->  down-history
  249.              "^O"                     ->  tty-flush-output
  250.              "^P"                     ->  up-history
  251.              "^Q"                     ->  tty-start-output
  252.              "^R"                     ->  redisplay
  253.              "^S"                     ->  tty-stop-output
  254.              "^T"                     ->  transpose-chars
  255.              "^U"                     ->  kill-whole-line
  256.              "^V"                     ->  quoted-insert
  257.              "^W"                     ->  kill-region
  258.              "^X"                     ->  sequence-lead-in
  259.  
  260.  
  261.  
  262. Cornell 6.03.00          20 November 1992                       4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. TCSH(1)                                                   TCSH(1)
  269.  
  270.  
  271.              "^Y"                     ->  yank
  272.              "^Z"                     ->  tty-sigtsusp
  273.              "^["                     ->  sequence-lead-in
  274.              "^\"                     ->  tty-sigquit
  275.              "^]"                     ->  tty-dsusp
  276.              " " to "/"               ->  self-insert-command
  277.              "0"  to "9"              ->  digit
  278.              ":"  to "~"              ->  self-insert-command
  279.              "^?"                     ->  backward-delete-char
  280.  
  281.              EMACS Multi-character and 8 bit bindings
  282.  
  283.              "^[^D" or "M-^D"         ->  list-choices
  284.              "^[^H" or "M-^H"         ->  backward-delete-word
  285.              "^[^I" or "M-^I"         ->  complete-word
  286.              "^[^L" or "M-^L"         ->  clear-screen
  287.              "^[^Z" or "M-^Z"         ->  run-fg-editor
  288.              "^[^[" or "M-^["         ->  complete-word
  289.              "^[^_" or "M-^_"         ->  copy-prev-word
  290.              "^[ "  or "M- "          ->  expand-history
  291.              "^[!"  or "M-!"          ->  expand-history
  292.              "^[$"  or "M-$"          ->  spell-line
  293.              "^[0"  or "M-0"          ->  digit-argument
  294.              "^[1"  or "M-1"          ->  digit-argument
  295.              "^[2"  or "M-2"          ->  digit-argument
  296.              "^[3"  or "M-3"          ->  digit-argument
  297.              "^[4"  or "M-4"          ->  digit-argument
  298.              "^[5"  or "M-5"          ->  digit-argument
  299.              "^[6"  or "M-6"          ->  digit-argument
  300.              "^[7"  or "M-7"          ->  digit-argument
  301.              "^[8"  or "M-8"          ->  digit-argument
  302.              "^[9"  or "M-9"          ->  digit-argument
  303.              "^[?"  or "M-?"          ->  which-command
  304.              "^[B"  or "M-B"          ->  backward-word
  305.              "^[C"  or "M-C"          ->  capitalize-word
  306.              "^[D"  or "M-D"          ->  delete-word
  307.              "^[F"  or "M-F"          ->  forward-word
  308.              "^[H"  or "M-H"          ->  run-help
  309.              "^[L"  or "M-L"          ->  downcase-word
  310.              "^[N"  or "M-N"          ->  history-search-forward
  311.              "^[P"  or "M-P"          ->  history-search-backward
  312.              "^[R"  or "M-R"          ->  toggle-literal-history
  313.              "^[S"  or "M-S"          ->  spell-word
  314.              "^[U"  or "M-U"          ->  upcase-word
  315.              "^[W"  or "M-W"          ->  copy-region-as-kill
  316.              "^[_"  or "M-_"          ->  insert-last-word
  317.              "^[b"  or "M-b"          ->  backward-word
  318.              "^[c"  or "M-c"          ->  capitalize-word
  319.              "^[d"  or "M-d"          ->  delete-word
  320.              "^[f"  or "M-f"          ->  forward-word
  321.              "^[h"  or "M-h"          ->  run-help
  322.              "^[l"  or "M-l"          ->  downcase-word
  323.              "^[n"  or "M-n"          ->  history-search-forward
  324.              "^[p"  or "M-p"          ->  history-search-backward
  325.  
  326.  
  327.  
  328. Cornell 6.03.00          20 November 1992                       5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. TCSH(1)                                                   TCSH(1)
  335.  
  336.  
  337.              "^[r"  or "M-r"          ->  toggle-literal-history
  338.              "^[s"  or "M-s"          ->  spell-word
  339.              "^[u"  or "M-u"          ->  upcase-word
  340.              "^[w"  or "M-w"          ->  copy-region-as-kill
  341.              "^[^?" or "M-^?"         ->  backward-delete-word
  342.              "^X^X"                   ->  exchange-point-and-mark
  343.              "^X*"                    ->  expand-glob
  344.              "^X$"                    ->  expand-variables
  345.              "^XG"                    ->  list-glob
  346.              "^Xg"                    ->  list-glob
  347.              "^Xn                     ->  normalize-path
  348.              "^XN                     ->  normalize-path
  349.  
  350.  
  351.              VI Insert Mode functions
  352.  
  353.              "^@"                     ->  is undefined
  354.              "^A"                     ->  beginning-of-line
  355.              "^B"                     ->  backward-char
  356.              "^C"                     ->  tty-sigintr
  357.              "^D"                     ->  list-or-eof
  358.              "^E"                     ->  end-of-line
  359.              "^F"                     ->  forward-char
  360.              "^G"                     ->  list-glob
  361.              "^H"                     ->  backward-delete-char
  362.              "^I"                     ->  complete-word
  363.              "^J"                     ->  newline
  364.              "^K"                     ->  kill-line
  365.              "^L"                     ->  clear-screen
  366.              "^M"                     ->  newline
  367.              "^N"                     ->  down-history
  368.              "^O"                     ->  tty-flush-output
  369.              "^P"                     ->  up-history
  370.              "^Q"                     ->  tty-start-output
  371.              "^R"                     ->  redisplay
  372.              "^S"                     ->  tty-stop-output
  373.              "^T"                     ->  transpose-chars
  374.              "^U"                     ->  backward-kill-line
  375.              "^V"                     ->  quoted-insert
  376.              "^W"                     ->  backward-delete-word
  377.              "^X"                     ->  expand-line
  378.              "^Y"                     ->  tty-dsusp
  379.              "^Z"                     ->  tty-sigtsusp
  380.              "^["                     ->  vi-cmd-mode
  381.              "^\"                     ->  tty-sigquit
  382.              " " to "~"               ->  self-insert-command
  383.              "^?"                     ->  backward-delete-char
  384.  
  385.              VI Command Mode functions
  386.  
  387.              "^@"                     ->  is undefined
  388.              "^A"                     ->  beginning-of-line
  389.              "^B"                     ->  is undefined
  390.              "^C"                     ->  tty-sigintr
  391.  
  392.  
  393.  
  394. Cornell 6.03.00          20 November 1992                       6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. TCSH(1)                                                   TCSH(1)
  401.  
  402.  
  403.              "^D"                     ->  list-choices
  404.              "^E"                     ->  end-of-line
  405.              "^F"                     ->  is undefined
  406.              "^G"                     ->  list-glob
  407.              "^H"                     ->  backward-char
  408.              "^I"                     ->  vi-cmd-mode-complete
  409.              "^J"                     ->  newline
  410.              "^K"                     ->  kill-line
  411.              "^L"                     ->  clear-screen
  412.              "^M"                     ->  newline
  413.              "^N"                     ->  down-history
  414.              "^O"                     ->  tty-flush-output
  415.              "^P"                     ->  up-history
  416.              "^Q"                     ->  tty-start-output
  417.              "^R"                     ->  redisplay
  418.              "^S"                     ->  tty-stop-output
  419.              "^T"                     ->  is undefined
  420.              "^U"                     ->  backward-kill-line
  421.              "^V"                     ->  is undefined
  422.              "^W"                     ->  backward-delete-word
  423.              "^X"                     ->  expand-line
  424.              "^["                     ->  sequence-lead-in
  425.              "^\"                     ->  tty-sigquit
  426.              " "                      ->  forward-char
  427.              "!"                      ->  expand-history
  428.              "$"                      ->  end-of-line
  429.              "*"                      ->  expand-glob
  430.              "+"                      ->  down-history
  431.              ";"                      ->  vi-repeat-char-fwd
  432.              ","                      ->  vi-repeat-char-back
  433.              "-"                      ->  up-history
  434.              "."                      ->  is undefined
  435.              "/"                      ->  vi-search-back
  436.              "0"                      ->  vi-zero
  437.              "1" to "9"               ->  digit-argument
  438.              "?"                      ->  vi-search-fwd
  439.              "@"                      ->  is undefined
  440.              "A"                      ->  vi-add-at-eol
  441.              "B"                      ->  vi-word-back
  442.              "C"                      ->  change-till-end-of-line
  443.              "D"                      ->  kill-line
  444.              "E"                      ->  vi-endword
  445.              "F"                      ->  vi-char-back
  446.              "I"                      ->  vi-insert-at-bol
  447.              "J"                      ->  history-search-forward
  448.              "K"                      ->  history-search-backward
  449.              "N"                      ->  vi-search-back
  450.              "O"                      ->  sequence-lead-in
  451.              "R"                      ->  vi-replace-mode
  452.              "S"                      ->  vi-substitute-line
  453.              "T"                      ->  vi-charto-back
  454.              "U"                      ->  is undefined
  455.              "V"                      ->  expand-variables
  456.              "W"                      ->  vi-word-fwd
  457.  
  458.  
  459.  
  460. Cornell 6.03.00          20 November 1992                       7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. TCSH(1)                                                   TCSH(1)
  467.  
  468.  
  469.              "X"                      ->  backward-delete-char
  470.              "["                      ->  sequence-lead-in
  471.              "\^"                     ->  beginning-of-line
  472.              "a"                      ->  vi-add
  473.              "b"                      ->  backward-word
  474.              "c"                      ->  is undefined
  475.              "d"                      ->  vi-delmeta
  476.              "e"                      ->  vi-eword
  477.              "f"                      ->  vi-char-fwd
  478.              "h"                      ->  backward-char
  479.              "i"                      ->  vi-insert
  480.              "j"                      ->  down-history
  481.              "k"                      ->  up-history
  482.              "l"                      ->  forward-char
  483.              "m"                      ->  is undefined
  484.              "n"                      ->  vi-search-fwd
  485.              "r"                      ->  vi-replace-char
  486.              "s"                      ->  vi-substitute-char
  487.              "t"                      ->  vi-charto-fwd
  488.              "u"                      ->  vi-undo
  489.              "v"                      ->  expand-variables
  490.              "w"                      ->  vi-beginning-of-next-word
  491.              "x"                      ->  delete-char
  492.              "~"                      ->  change-case
  493.              "^?"                     ->  backward-delete-char
  494.              "M-?"                    ->  run-help
  495.              "M-["                    ->  sequence-lead-in
  496.              "M-O"                    ->  sequence-lead-in
  497.  
  498.              VI Multi-character bindings
  499.  
  500.              "^[?"                    ->  run-help
  501.  
  502.  
  503.        In  _✓t_✓c_✓s_✓h  there are two input modes: _✓i_✓n_✓s_✓e_✓r_✓t and _✓o_✓v_✓e_✓r_✓w_✓r_✓i_✓t_✓e_✓.
  504.        All characters that are bound to  the  _✓s_✓e_✓l_✓f_✓-_✓i_✓n_✓s_✓e_✓r_✓t_✓-_✓c_✓o_✓m_✓m_✓a_✓n_✓d
  505.        either get inserted or overwrite what was under the cursor
  506.        depending on the input  mode.  In  emacs  one  can  toggle
  507.        between modes using the _✓o_✓v_✓e_✓r_✓w_✓r_✓i_✓t_✓e_✓-_✓m_✓o_✓d_✓e function, and in VI
  508.        one can use any of the replace mode commands.  By  default
  509.        the  mode  is  preserved between input lines. To specify a
  510.        default mode that can be enforced at the beginning of each
  511.        command  line, the variable _✓i_✓n_✓p_✓u_✓t_✓m_✓o_✓d_✓e can be set to either
  512.        _✓i_✓n_✓s_✓e_✓r_✓t or _✓o_✓v_✓e_✓r_✓w_✓r_✓i_✓t_✓e_✓.
  513.  
  514.        There is also an older version  of  bindkey  called  _✓b_✓i_✓n_✓d_✓,
  515.        that  allows  the  user  to redefine what any key does, or
  516.        find out what any or all of the keys do. This is  retained
  517.        for compatibility reasons.
  518.  
  519.        If  given  two  arguments  _✓b_✓i_✓n_✓d  binds the function (first
  520.        argument) to the given key (second argument).  The key may
  521.        be:  the direct character or a caret-<letter> combination,
  522.        which is converted to control-<letter>; M-<letter> for  an
  523.  
  524.  
  525.  
  526. Cornell 6.03.00          20 November 1992                       8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. TCSH(1)                                                   TCSH(1)
  533.  
  534.  
  535.        escaped  character; or F-<string> for a function key.  For
  536.        the last of these, the function key prefix must  be  bound
  537.        to  the  function "sequence-lead-in" and the string speci-
  538.        fied to the _✓b_✓i_✓n_✓d command must not include this prefix.
  539.  
  540.        If given one argument _✓b_✓i_✓n_✓d takes the argument as the  name
  541.        for  a  key  and  tells  what that key does.  As a special
  542.        case, the user can say
  543.  
  544.              bind emacs
  545.        or
  546.              bind vi
  547.  
  548.        to bind all the keys for Emacs or vi mode respectively.
  549.  
  550.        If given no arguments _✓b_✓i_✓n_✓d tells what all of the keys  do.
  551.        If  you  give  bind  the single argument of 'defaults', it
  552.        resets each key to its default value (see the above list).
  553.  
  554.  
  555. 2✓2.✓. V✓VI✓IS✓SU✓UA✓AL✓L H✓HI✓IS✓ST✓TO✓OR✓RY✓Y
  556.        The  keys  ^P and ^N are used to step up and down the his-
  557.        tory list.  If the user has typed in the following:
  558.  
  559.              > ls
  560.              foo  bar
  561.              > echo mumble
  562.              mumble
  563.              >
  564.  
  565.        then enters _✓^_✓P_✓, the shell will place  "echo  mumble"  into
  566.        the  editing buffer, and will put the cursor at the end of
  567.        the line.  If another _✓^_✓P is entered, then the editing line
  568.        will  change  to  "ls".  More _✓^_✓Ps will make the bell ring,
  569.        since there are no more lines in the  history.   _✓^_✓N  works
  570.        the same way, except it steps down (forward in time).
  571.  
  572.        An  easy  way to re-do a command is to type _✓^_✓P followed by
  573.        _✓R_✓e_✓t_✓u_✓r_✓n_✓.  Also, pieces of previous commands can  be  assem-
  574.        bled  to  make  a  new command.  The commands that work on
  575.        regions are especially useful for this.
  576.  
  577.        _✓^_✓P and _✓^_✓N actually only copy commands from out of the his-
  578.        tory  into  the  edit  buffer; thus the user may step back
  579.        into the history and then edit things, but  those  changes
  580.        do not affect what is actually in _✓t_✓c_✓s_✓h _✓'_✓s history.
  581.  
  582.        Another  way  to recall (parts of) history commands is via
  583.        the 'expand-history' function. A variation of the 'expand-
  584.        history'  function is called 'magic-space'.  This function
  585.        expands _✓c_✓s_✓h history, and always appends  a  space.  Magic-
  586.        space  thus  can  be  bound  to  <space>, to automatically
  587.        expand _✓c_✓s_✓h history.  Expand-history is normally  bound  to
  588.        _✓M_✓-_✓<_✓s_✓p_✓a_✓c_✓e_✓> and magic-space is not bound.
  589.  
  590.  
  591.  
  592. Cornell 6.03.00          20 November 1992                       9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. TCSH(1)                                                   TCSH(1)
  599.  
  600.  
  601. 3✓3.✓. T✓TT✓TY✓Y M✓MO✓OD✓DE✓E S✓SA✓AN✓NI✓IT✓TY✓Y
  602.        As  part of the editor, _✓t_✓c_✓s_✓h does a check and reset of the
  603.        terminal mode bits.  If the speed has been  changed,  then
  604.        _✓t_✓c_✓s_✓h will change to using that speed.  _✓T_✓c_✓s_✓h will also obey
  605.        changes in the padding needed by the tty.  Also, the shell
  606.        will  automatically  turn  off  RAW and CBREAK (on systems
  607.        that use _✓t_✓e_✓r_✓m_✓i_✓o_✓(_✓7_✓) it will turn on ICANON) modes, and will
  608.        turn on the tty driver's output processing (OPOST).
  609.  
  610.        The  list  of the tty modes that are always set or cleared
  611.        by _✓t_✓c_✓s_✓h can be  examined  and  modified  using  the  _✓s_✓e_✓t_✓t_✓y
  612.        builtin.   The  _✓s_✓e_✓t_✓t_✓y  display  is similar to _✓s_✓t_✓t_✓y_✓(_✓1_✓)_✓, and
  613.        varies depending on the system's tty  driver.  Modes  that
  614.        _✓t_✓c_✓s_✓h  will  always  try to set are shown as _✓+_✓m_✓o_✓d_✓e _✓.  Modes
  615.        that _✓t_✓c_✓s_✓h will always try to clear are shown as _✓-_✓m_✓o_✓d_✓e  and
  616.        modes  that  tcsh  will track and allow to be modified are
  617.        not shown by default, or if the  _✓-_✓a  flag  is  given,  are
  618.        shown  without  a  leading sign. For tty characters, _✓-_✓c_✓h_✓a_✓r
  619.        disables the tty character, while _✓+_✓c_✓h_✓a_✓r protects  the  tty
  620.        character from being changed.
  621.  
  622.        Setty  can  be  used  to control the three different modes
  623.        _✓t_✓c_✓s_✓h uses for the tty. The default mode displayed  is  the
  624.        "execute"  mode which is used when tcsh executes commands.
  625.        The two other modes are the "edit" mode  and  the  "quote"
  626.        mode.  The  "edit"  mode is used for command line editing,
  627.        and the "quote" mode is used when entering literal charac-
  628.        ters.  The  "execute"  mode can be specified with _✓-_✓x _✓, the
  629.        "edit" mode with _✓-_✓d _✓, and the "quote"  mode  with  _✓-_✓q  For
  630.        example  if  one  wants  to set the _✓e_✓c_✓h_✓o_✓k flag and let the
  631.        _✓e_✓c_✓h_✓o_✓e pass unchanged:
  632.  
  633.              > setty
  634.              iflag:-inlcr -igncr +icrnl
  635.              oflag:+opost +onlcr -onlret
  636.              cflag:
  637.              lflag:+isig +icanon +echo +echoe -echok -echonl -noflsh
  638.                    +echoctl -flusho +iexten
  639.              chars:
  640.              > setty +echok echoe
  641.              > setty
  642.              iflag:-inlcr -igncr +icrnl
  643.              oflag:+opost +onlcr -onlret
  644.              cflag:
  645.              lflag:+isig +icanon +echo +echok -echonl -noflsh +echoctl
  646.                    -flusho +iexten
  647.              chars:
  648.  
  649.  
  650.  
  651. 4✓4.✓. W✓WO✓OR✓RD✓D C✓CO✓OM✓MP✓PL✓LE✓ET✓TI✓IO✓ON✓N
  652.        In typing commands, it is no longer necessary  to  type  a
  653.        complete  name,  only  a unique abbreviation is necessary.
  654.        When you type a TAB to _✓t_✓c_✓s_✓h it will complete the name  for
  655.  
  656.  
  657.  
  658. Cornell 6.03.00          20 November 1992                      10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. TCSH(1)                                                   TCSH(1)
  665.  
  666.  
  667.        you,  echoing  the full name on the terminal (and entering
  668.        it into the edit buffer).  If the prefix you typed matches
  669.        no  name,  the  terminal bell is rung, unless the variable
  670.        _✓n_✓o_✓b_✓e_✓e_✓p is set.  The name may be partially completed if the
  671.        prefix matches several longer names.  If this is the case,
  672.        the name is extended up to the point of ambiguity, and the
  673.        bell  is  rung.  This works for file names, command names,
  674.        shell variables and the   user name convention.  The vari-
  675.        able _✓f_✓i_✓g_✓n_✓o_✓r_✓e may be set to a list of suffixes to be disre-
  676.        garded during completion.
  677.  
  678.        _✓E_✓x_✓a_✓m_✓p_✓l_✓e
  679.  
  680.        Assume the current directory contained the files:
  681.  
  682.              DSC.TXT   bin       cmd       lib       memos
  683.              DSC.NEW   chaos     cmtest    mail      netnews
  684.              bench     class     dev       mbox      new
  685.  
  686.        The command:
  687.  
  688.              > gnumacs ch[TAB]
  689.  
  690.        would cause _✓t_✓c_✓s_✓h to complete the  command  with  the  file
  691.        name chaos.  If instead, the user had typed:
  692.  
  693.              > gnumacs D[TAB]
  694.  
  695.        _✓t_✓c_✓s_✓h would have extended the name to DSC and rung the ter-
  696.        minal bell, indicating  partial  completion.  However,  if
  697.        _✓f_✓i_✓g_✓n_✓o_✓r_✓e  had previously been set to a list containing .NEW
  698.        as one element, e.g. ( .o .NEW ),  _✓t_✓c_✓s_✓h  would  have  com-
  699.        pleted the `D' to DSC.TXT.
  700.  
  701.        File  name completion works equally well when other direc-
  702.        tories are addressed.  Additionally, _✓t_✓c_✓s_✓h understands  the
  703.        C  shell  tilde  (~)  convention for home directories.  In
  704.        addition it caches tilde name references for fast  access.
  705.        This  cache  can  be  flushed by using the builtin _✓r_✓e_✓h_✓a_✓s_✓h_✓.
  706.        Thus,
  707.  
  708.              > cd ~speech/data/fr[TAB]
  709.  
  710.        does what one might expect.  This  may  also  be  used  to
  711.        expand login names only.  Thus,
  712.  
  713.              > cd ~sy[TAB]
  714.  
  715.        expands to
  716.  
  717.              > cd ~synthesis
  718.  
  719.  
  720.        Command names may also be completed, for example,
  721.  
  722.  
  723.  
  724. Cornell 6.03.00          20 November 1992                      11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. TCSH(1)                                                   TCSH(1)
  731.  
  732.  
  733.              > gnum[TAB]
  734.  
  735.        will expand to "gnumacs" (assuming that there are no other
  736.        commands that begin with "gnum").
  737.  
  738.        Shell and environment variables are recognized also and in
  739.        addition they can be expanded:
  740.  
  741.              > set local=/usr/local
  742.              > echo $lo[TAB]
  743.  
  744.        will  expand  to  "$local/". Note that a slash is appended
  745.        because the expanded variable points to a directory. Also:
  746.  
  747.              > set local=/usr/local
  748.              > echo $local/[^D]
  749.              bin/ etc/ lib/ man/ src/
  750.  
  751.        will  correctly list the contents of /usr/local. Shell and
  752.        environment variables can also be expanded via the expand-
  753.        variables function:
  754.  
  755.              > echo $local/[^X$]
  756.              > echo /usr/local/
  757.  
  758.  
  759.        Completion  also works when the cursor is in the middle of
  760.        the line, rather than just the end.  All of the text after
  761.        the cursor will be saved, the completion will work (possi-
  762.        bly adding to the current name), and then the  saved  text
  763.        will be restored in place, after the cursor.
  764.  
  765.        The  behavior of the completion can be changed by the set-
  766.        ting of several shell variables:
  767.  
  768.        Setting the _✓r_✓e_✓c_✓e_✓x_✓a_✓c_✓t variable makes an  exact  command  be
  769.        expanded  rather than just ringing the bell.  For example,
  770.        assume  the  current  directory  has  two  sub-directories
  771.        called  foo and food, then with _✓r_✓e_✓c_✓e_✓x_✓a_✓c_✓t set the following
  772.        could be done:
  773.  
  774.              > cd fo[TAB]
  775.        to ...
  776.              > cd foo[TAB]
  777.        to ...
  778.              > cd foo/
  779.  
  780.        rather than beeping on the second TAB.
  781.  
  782.        If the _✓a_✓u_✓t_✓o_✓l_✓i_✓s_✓t variable is set, invoking completion  when
  783.        several  choices  are possible will automatically list the
  784.        choices, effectively merging the  functionality  described
  785.        in  the  next  section  into  the completion mechanism. If
  786.        _✓a_✓u_✓t_✓o_✓l_✓i_✓s_✓t is set to "ambiguous", then _✓t_✓c_✓s_✓h will  only  list
  787.  
  788.  
  789.  
  790. Cornell 6.03.00          20 November 1992                      12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. TCSH(1)                                                   TCSH(1)
  797.  
  798.  
  799.        the  choices  if there were no new characters added in the
  800.        completion operation.
  801.  
  802.  
  803.        The "noise level" can be  controlled  by  the  value  that
  804.        _✓m_✓a_✓t_✓c_✓h_✓b_✓e_✓e_✓p  is  set  to: With matchbeep=nomatch, completion
  805.        will only beep if there are no matching names; with match-
  806.        beep=ambiguous,  completion  will  _✓a_✓l_✓s_✓o  beep if there are
  807.        many possible matches; with  matchbeep=notunique,  comple-
  808.        tion will _✓a_✓l_✓s_✓o beep when there is an exact match but there
  809.        are other, longer, matches (see  recexact).   With  match-
  810.        beep=never or set to any other value completion will never
  811.        beep. If matchbeep is not set it defaults to ambiguous.
  812.  
  813.        If the _✓a_✓u_✓t_✓o_✓e_✓x_✓p_✓a_✓n_✓d  variable  is  set,  the  expand-history
  814.        function  will be invoked automatically before the comple-
  815.        tion attempt, expanding normal _✓c_✓s_✓h history  substitutions.
  816.  
  817.        For  covert  operation, the variable _✓n_✓o_✓b_✓e_✓e_✓p can be set; it
  818.        will prevent the completion mechanism, as well as _✓t_✓c_✓s_✓h  in
  819.        general,  from actually beeping.  Finally, if the _✓a_✓u_✓t_✓o_✓c_✓o_✓r_✓-
  820.        _✓r_✓e_✓c_✓t variable is set, the spelling correction is attempted
  821.        for any path components up to the completion point.
  822.  
  823.  
  824. 5✓5.✓. L✓LI✓IS✓ST✓TI✓IN✓NG✓G O✓OF✓F P✓PO✓OS✓SS✓SI✓IB✓BL✓LE✓E N✓NA✓AM✓ME✓ES✓S
  825.        At  any  point  in typing a command, you may request "what
  826.        names are available".  Thus, when you have typed, perhaps:
  827.  
  828.              > cd ~speech/data/fritz/
  829.  
  830.        you  may  wish to know what files or sub-directories exist
  831.        (in ~speech/data/fritz), without, of course, aborting  the
  832.        command  you  are  typing.  Typing the character Control-D
  833.        (^D), will list the names (files, in this case) available.
  834.        The files are listed in multicolumn format, sorted column-
  835.        wise.  Directories are indicated with a trailing `/', exe-
  836.        cutable files with a `*', symbolic links with a '@', sock-
  837.        ets with a '=', FIFOs (named pipes) with a '|',  character
  838.        devices  with  a  '%', and block devices with a '#'.  Once
  839.        printed, the command is re-echoed for you to complete.
  840.  
  841.        Additionally, one may want to know  which  files  match  a
  842.        prefix.  If the user had typed:
  843.  
  844.              > cd ~speech/data/fr[^D]
  845.  
  846.        all  files  and  sub-directories  whose  prefix was ``fr''
  847.        would be printed.  Notice that the example before was sim-
  848.        ply  a  degenerate  case of this with a null trailing file
  849.        name.  (The null string  is  a  prefix  of  all  strings.)
  850.        Notice  also, that a trailing slash is required to pass to
  851.        a new directory for both file name completion and listing.
  852.  
  853.  
  854.  
  855.  
  856. Cornell 6.03.00          20 November 1992                      13
  857.  
  858.  
  859.  
  860.  
  861.  
  862. TCSH(1)                                                   TCSH(1)
  863.  
  864.  
  865.        The degenerate
  866.  
  867.              > ~[^D]
  868.  
  869.        will  print a full list of login names on the current sys-
  870.        tem.  Note, however, that the degenerate
  871.  
  872.              > <Spaces>[^D]
  873.  
  874.        does not list all of the commands, but only the  files  in
  875.        the current working directory.
  876.  
  877.        Listing/expanding  of  words  that match a name containing
  878.        wildcard characters can be done via the  list-glob/expand-
  879.        glob function:
  880.              > ls
  881.              foo.c  bar.c  a.out
  882.              > vi *.c[^Xg]
  883.              foo.c bar.c
  884.              > vi *.c[^X*]
  885.              > vi foo.c bar.c
  886.  
  887.  
  888. C✓Co✓om✓mm✓ma✓an✓nd✓d N✓Na✓am✓me✓e R✓Re✓ec✓co✓og✓gn✓ni✓it✓ti✓io✓on✓n
  889.        Command  name recognition and completion works in the same
  890.        manner as file name recognition and completion above.  The
  891.        current  value of the environment variable _✓P_✓A_✓T_✓H is used in
  892.        searching for the command.  For example
  893.  
  894.              > newa[TAB]
  895.  
  896.        might expand to
  897.  
  898.              > newaliases
  899.  
  900.        Also,
  901.  
  902.              > new[^D]
  903.  
  904.        would list all  commands  (along  PATH)  that  begin  with
  905.        "new".
  906.  
  907.        Note  that  Control-D has three different effects on _✓t_✓c_✓s_✓h_✓.
  908.        On an empty line (one  that  contains  nothing,  not  even
  909.        spaces),  _✓^_✓D sends an EOF to _✓t_✓c_✓s_✓h just as it does for nor-
  910.        mal programs.  When the cursor is in the middle of a  line
  911.        of  text,  _✓^_✓D  deletes  the  character  that the cursor is
  912.        under.  Finally, a _✓^_✓D at the end of a line of  text  lists
  913.        the  available  names  at  that  point.   To get a list of
  914.        available names when the cursor is in the middle of a line
  915.        (or  on  an  empty line), a Meta-Control-D should be typed
  916.        (Escape followed by Control-D).
  917.  
  918.  
  919.  
  920.  
  921.  
  922. Cornell 6.03.00          20 November 1992                      14
  923.  
  924.  
  925.  
  926.  
  927.  
  928. TCSH(1)                                                   TCSH(1)
  929.  
  930.  
  931. 6✓6.✓. S✓SP✓PE✓EL✓LL✓LI✓IN✓NG✓G C✓CO✓OR✓RR✓RE✓EC✓CT✓TI✓IO✓ON✓N
  932.        If while typing a command, the user mistypes or  misspells
  933.        a  file name, user name, or command name, _✓t_✓c_✓s_✓h can correct
  934.        the spelling.  When correcting a file name, each  part  of
  935.        the  path is individually checked and corrected.  Spelling
  936.        correction can be invoked in several different ways:
  937.  
  938.        The _✓s_✓p_✓e_✓l_✓l_✓-_✓w_✓o_✓r_✓d function, normally bound to M-s (and  M-S),
  939.        will  attempt  to  correct the word immediately before the
  940.        cursor.  For example, suppose that the user has typed:
  941.  
  942.              > cd /uxr/spol/news[ESC s]
  943.  
  944.        _✓T_✓c_✓s_✓h will check the path for spelling,  correct  the  mis-
  945.        takes, and redraw the line as
  946.  
  947.              > cd /usr/spool/news
  948.  
  949.        leaving the cursor at the end of the line.
  950.  
  951.        Spelling  correction  of the entire command line (indepen-
  952.        dent of where the cursor is) can be done with  the  _✓s_✓p_✓e_✓l_✓l_✓-
  953.        _✓l_✓i_✓n_✓e function, normally bound to M-$ (Escape Dollar-sign).
  954.        It will check each word independently,  but  in  order  to
  955.        avoid  e.g. command options, no correction is attempted on
  956.        words  whose  first  character  is  found  in  the  string
  957.        "!.\^-*%".
  958.  
  959.        Finally,  automatic  spelling correction will be done each
  960.        time the Return key is hit, if the _✓c_✓o_✓r_✓r_✓e_✓c_✓t variable is set
  961.        to  an  appropriate  value:  correct=cmd  will  cause  the
  962.        spelling of the command name only  to  be  checked,  while
  963.        correct=all causes checking of all words on the line, like
  964.        the spell-line function.  If any part of the command  line
  965.        is  corrected,  the user will be given a special prompt as
  966.        defined by the _✓p_✓r_✓o_✓m_✓p_✓t_✓3 variable, followed by the corrected
  967.        line, e.g.
  968.  
  969.              > lz /usr/bin
  970.              CORRECT>ls /usr/bin (y|n|e)?
  971.  
  972.        Answering 'y' or <space> at the prompt will cause the cor-
  973.        rected line to be executed, 'e' will leave the uncorrected
  974.        command in the input buffer and anything else will execute
  975.        the original line unchanged.
  976.  
  977.        Automatic correction is not guaranteed to work the way the
  978.        user intended.  Command line parsing is done in a rudimen-
  979.        tary fashion. It is mostly  provided  as  an  experimental
  980.        feature. Suggestions and improvements are welcome.
  981.  
  982.  
  983. 7✓7.✓. D✓DO✓OC✓CU✓UM✓ME✓EN✓NT✓TA✓AT✓TI✓IO✓ON✓N L✓LO✓OO✓OK✓KU✓UP✓P
  984.        The  editor  function _✓r_✓u_✓n_✓-_✓h_✓e_✓l_✓p (M-h) prints a help file on
  985.  
  986.  
  987.  
  988. Cornell 6.03.00          20 November 1992                      15
  989.  
  990.  
  991.  
  992.  
  993.  
  994. TCSH(1)                                                   TCSH(1)
  995.  
  996.  
  997.        the current command (using the same definition of  current
  998.        as  the completion routines use).  This help file is found
  999.        by searching the path list HPATH for  files  of  the  form
  1000.        foo.help,  foo.1,  foo.8, or foo.6 in that order (assuming
  1001.        that the current  command  is  foo).   The  file  is  just
  1002.        printed,  not  paged in any way.  This is because _✓r_✓u_✓n_✓-_✓h_✓e_✓l_✓p
  1003.        is meant to be used to look up short help files, not  man-
  1004.        ual pages (although it can do manual pages also).
  1005.  
  1006.  
  1007. 8✓8.✓. E✓EN✓NH✓HA✓AN✓NC✓CE✓ED✓D H✓HI✓IS✓ST✓TO✓OR✓RY✓Y M✓ME✓EC✓CH✓HA✓AN✓NI✓IS✓SM✓M
  1008.        _✓T_✓c_✓s_✓h  will  save  the history list between login sessions.
  1009.        It does this by writing  the  current  list  to  the  file
  1010.        "~/.history"  on  logout, and reading it in on login.  For
  1011.        example, placing the line
  1012.  
  1013.              > set history=25 savehist=20
  1014.  
  1015.        tells _✓t_✓c_✓s_✓h to save the last 25  commands  on  the  history
  1016.        list, and to save the last 20 of them between logins.  The
  1017.        "savehist" variable may be set up to the size of  history,
  1018.        although  it is an error to have _✓s_✓a_✓v_✓e_✓h_✓i_✓s_✓t larger than _✓h_✓i_✓s_✓-
  1019.        _✓t_✓o_✓r_✓y_✓.  In addition to the above _✓t_✓c_✓s_✓h_✓, keeps unparsed (lit-
  1020.        eral)  versions  of the history if the variable _✓h_✓i_✓s_✓t_✓l_✓i_✓t is
  1021.        set. Also the toggle-history function toggles between  the
  1022.        parsed  and literal version of the recalled history in the
  1023.        editor buffer. For example:
  1024.  
  1025.              > set histlit
  1026.              > echo !:s/foo/bar; ls
  1027.              Modifier failed.
  1028.              > ^P
  1029.              > echo !:s/foo/bar; ls
  1030.              > unset histlit
  1031.              > echo !:s/foo/bar; ls
  1032.              Modifier failed.
  1033.              > ^P
  1034.              > echo unset histlit[M-r]
  1035.              > echo !:s/foo/bar; ls
  1036.  
  1037.        _✓T_✓c_✓s_✓h also supports the history escape  _✓!_✓#_✓.   This  undocu-
  1038.        mented  _✓c_✓s_✓h  escape  holds  the words of the current line.
  1039.        This is useful in renaming commands:
  1040.  
  1041.              > mv foo bar!#:1
  1042.              mv foo barfoo
  1043.  
  1044.        Care should be taken when using this history expansion  in
  1045.        _✓c_✓s_✓h  since  there is no check for recursion. In _✓t_✓c_✓s_✓h up to
  1046.        10 levels of recursion are allowed.
  1047.  
  1048.        Another difference between _✓t_✓c_✓s_✓h and _✓c_✓s_✓h history expansion,
  1049.        is  the treatment of history arguments. In _✓c_✓s_✓h _✓!_✓3_✓d expands
  1050.        to event 3 with the letter "d" appended to it.   There  is
  1051.  
  1052.  
  1053.  
  1054. Cornell 6.03.00          20 November 1992                      16
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. TCSH(1)                                                   TCSH(1)
  1061.  
  1062.  
  1063.        no way to repeat a command that begins with a number using
  1064.        the name of the command in the  history  escape.  In  _✓t_✓c_✓s_✓h
  1065.        only  numeric  arguments  are  treated  as  event numbers;
  1066.        therefore _✓!_✓3_✓d is interpreted as: repeat the  last  command
  1067.        that started with the string "3d". To mimic the _✓c_✓s_✓h behav-
  1068.        ior _✓!_✓3_✓\_✓d can be used.
  1069.  
  1070.  
  1071.  
  1072. 9✓9.✓. A✓AU✓UT✓TO✓OM✓MA✓AT✓TI✓IC✓C L✓LO✓OG✓GO✓OU✓UT✓T/✓/L✓LO✓OC✓CK✓KI✓IN✓NG✓G
  1073.        The automatic locking and logout time  are  controlled  by
  1074.        the  variable  _✓a_✓u_✓t_✓o_✓l_✓o_✓g_✓o_✓u_✓t_✓.  The value of the first word is
  1075.        the number of minutes of inactivity will be allowed before
  1076.        automatically  logging  the user out.  When that many min-
  1077.        utes have been reached, the shell prints "auto-logout" and
  1078.        dies  (without executing ~/.logout).  The default for _✓t_✓c_✓s_✓h
  1079.        is to set _✓a_✓u_✓t_✓o_✓l_✓o_✓g_✓o_✓u_✓t for 60 minutes on login  shells,  and
  1080.        when  the  user  is  root.   To  disable  autologout  (for
  1081.        instance in a window system),  unset  the  shell  variable
  1082.        _✓a_✓u_✓t_✓o_✓l_✓o_✓g_✓o_✓u_✓t_✓.
  1083.  
  1084.        The value of the optional second word indicates the number
  1085.        of minutes of inactivity after  which  the  user  will  be
  1086.        prompted for his login password to continue working. Fail-
  1087.        ure to enter the correct  password  5  times,  results  in
  1088.        auto-logout.
  1089.  
  1090.  
  1091. 1✓10✓0.✓. E✓EX✓XE✓EC✓CU✓UT✓TI✓IO✓ON✓N O✓OF✓F A✓A C✓CO✓OM✓MM✓MA✓AN✓ND✓D P✓PR✓RI✓IO✓OR✓R T✓TO✓O E✓EA✓AC✓CH✓H P✓PR✓RO✓OM✓MP✓PT✓T
  1092.        _✓T_✓c_✓s_✓h  supports a special alias, _✓p_✓r_✓e_✓c_✓m_✓d_✓, which if set holds
  1093.        a command that  will  be  executed  before  printing  each
  1094.        prompt.  For example, if the user has done
  1095.  
  1096.              > alias precmd date
  1097.  
  1098.        then  the  program  _✓d_✓a_✓t_✓e will be run just before the shell
  1099.        prompts for each command.  There  are  no  limitations  on
  1100.        what  precmd  can be set to do, although discretion should
  1101.        be used.
  1102.  
  1103.  
  1104. 1✓11✓1.✓. P✓PE✓ER✓RI✓IO✓OD✓DI✓IC✓C C✓CO✓OM✓MM✓MA✓AN✓ND✓D E✓EX✓XE✓EC✓CU✓UT✓TI✓IO✓ON✓N
  1105.        _✓T_✓c_✓s_✓h is now capable of providing periodic  command  execu-
  1106.        tion through the use of the shell variable _✓t_✓p_✓e_✓r_✓i_✓o_✓d and the
  1107.        alias _✓p_✓e_✓r_✓i_✓o_✓d_✓i_✓c_✓.  When these items are set, the alias _✓p_✓e_✓r_✓i_✓-
  1108.        _✓o_✓d_✓i_✓c  will  be  executed every _✓t_✓p_✓e_✓r_✓i_✓o_✓d minutes.  This pro-
  1109.        vides a convenient means for checking on common but infre-
  1110.        quent changes, such as new messages.  Example:
  1111.  
  1112.              > set tperiod = 30
  1113.              > alias periodic checknews
  1114.  
  1115.        This  will  cause the _✓c_✓h_✓e_✓c_✓k_✓n_✓e_✓w_✓s(1) program to be run every
  1116.        30 minutes.  Having the alias _✓p_✓e_✓r_✓i_✓o_✓d_✓i_✓c  set  but  with  an
  1117.  
  1118.  
  1119.  
  1120. Cornell 6.03.00          20 November 1992                      17
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. TCSH(1)                                                   TCSH(1)
  1127.  
  1128.  
  1129.        unset  _✓t_✓p_✓e_✓r_✓i_✓o_✓d  (or  a  value of 0 for _✓t_✓p_✓e_✓r_✓i_✓o_✓d_✓) will cause
  1130.        _✓p_✓e_✓r_✓i_✓o_✓d_✓i_✓c to degenerate to another form of _✓p_✓r_✓e_✓c_✓m_✓d_✓.
  1131.  
  1132.  
  1133. 1✓12✓2.✓. N✓NE✓EW✓W P✓PR✓RO✓OM✓MP✓PT✓T F✓FO✓OR✓RM✓MA✓AT✓T
  1134.        The format for the _✓p_✓r_✓o_✓m_✓p_✓t shell variable has been  changed
  1135.        to  include  many  new things, such as the current time of
  1136.        day, current working directory, etc..  The new format uses
  1137.        "%<char>"  to  signal  an expansion, much like _✓p_✓r_✓i_✓n_✓t_✓f_✓(_✓3_✓S_✓)_✓.
  1138.        The available sequences are:
  1139.  
  1140.              %/          Current working directory.
  1141.              %~          cwd.  If it starts with $HOME, that part is
  1142.                          replaced by a ~. In addition if a directory
  1143.                          name prefix matches a user's home directory,
  1144.                          that part of the directory will be substituted
  1145.                          with ~user. NOTE: The ~user substitution will
  1146.                          only happen if the shell has performed a ~
  1147.                          expansion for that user name in this session.
  1148.              %c or %.    Trailing component of cwd, may be
  1149.                          followed by by a digit to get more than one
  1150.                          component, if it starts with $HOME, that
  1151.                          part is replaced with a ~.
  1152.              %C          Trailing component of cwd, may be followed
  1153.                          by a digit to get more than one component, no
  1154.                          ~ substitution.
  1155.              %h, %!, !   Current history event number.
  1156.              %M          The full machine hostname.
  1157.              %m          The hostname up to the first ".".
  1158.              %S (%s)     Start (stop) standout mode.
  1159.              %B (%b)     Start (stop) boldfacing mode. (Only if
  1160.                          tcsh was compiled to be eight bit clean.)
  1161.              %U (%u)     Start (stop) underline mode. (Only if
  1162.                          tcsh was compiled to be eight bit clean.)
  1163.              %t or %@    Current time of day, in 12-hour, am/pm format.
  1164.              %T          Current time of day, in 24-hour format.
  1165.                          (But see the _✓a_✓m_✓p_✓m shell variable below.)
  1166.              \c          `c' is parsed the same way as in bindkey.
  1167.              ^c          `c' is parsed the same way as in bindkey.
  1168.              %%          A single %.
  1169.              %n          The user name, contents of $user.
  1170.              %d          The weekday in <Day> format.
  1171.              %D          The day in dd format.
  1172.              %w          The month in <Mon> format.
  1173.              %W          The month in mm format.
  1174.              %y          The year in yy format.
  1175.              %Y          The year in yyyy format.
  1176.              %l          The line (tty) the user is logged on.
  1177.              %L          clear from prompt to end of display or end of line.
  1178.              %#          A `#' if tcsh is run as a root shell,
  1179.                          a `>' if not.
  1180.              %{..%}      Include string as a literal escape sequence.
  1181.                          Note that the enclosed escape sequence, should
  1182.                          only be used to change terminal attributes and
  1183.  
  1184.  
  1185.  
  1186. Cornell 6.03.00          20 November 1992                      18
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. TCSH(1)                                                   TCSH(1)
  1193.  
  1194.  
  1195.                          should not move the cursor location. Also, this
  1196.                          cannot be the last character in the prompt
  1197.                          string. (Available only if tcsh was compiled to
  1198.                          be eight bit clean.)
  1199.              %?          return code of the last command executed just
  1200.                          before the prompt.
  1201.              %R          In prompt3 this is the corrected string; in
  1202.                          prompt2 it is the status of the parser.
  1203.  
  1204.        On %C, %c and %., if the optional digit is  0,  then  then
  1205.        next  digit is interpreted as the number of directory com-
  1206.        ponents to  be  skipped,  and  the  number  of  components
  1207.        skipped are reported as: /<num-skipped>path/path.
  1208.  
  1209.        The sequences for standout are often used to indicate that
  1210.        this is an enabled (running as root) shell.  An example:
  1211.  
  1212.              > set prompt="%m [%h] %U[%@]%u [%/] you rang? "
  1213.              tut [37] _✓[_✓2_✓:_✓5_✓4_✓p_✓m_✓] [/usr/accts/sys] you rang? _
  1214.  
  1215.        In addition, there is a new variable,  _✓p_✓r_✓o_✓m_✓p_✓t_✓2_✓,  which  is
  1216.        used  to prompt for the body of while and for loops (wher-
  1217.        ever normal  _✓c_✓s_✓h  prompts  with  a  question  mark).   The
  1218.        default  for  _✓p_✓r_✓o_✓m_✓p_✓t_✓2  is "%R? ": the status of the parser
  1219.        followed by a question mark.   This  alternate  prompt  is
  1220.        also  used when the parser is waiting for more input; i.e.
  1221.        when the previous line ended in a \.  The _✓p_✓r_✓o_✓m_✓p_✓t_✓3 variable
  1222.        is  used  when  displaying the corrected command line when
  1223.        automatic spelling correction is in effect; it defaults to
  1224.        "CORRECT>%R (y|n|e)? ".
  1225.  
  1226.  
  1227.  
  1228. 1✓13✓3.✓. T✓TI✓IM✓ME✓E-✓-S✓ST✓TA✓AM✓MP✓PE✓ED✓D H✓HI✓IS✓ST✓TO✓OR✓RY✓Y L✓LI✓IS✓ST✓T
  1229.        The  history  list  in  _✓t_✓c_✓s_✓h  now  has a time-of-day stamp
  1230.        attached to each history list event.  This time  stamp  is
  1231.        printed  whenever  the  history command is executed.  This
  1232.        allows the user to keep track of when the  various  events
  1233.        occurred.  The time stamps are not maintained on the saved
  1234.        history list (also available in  _✓c_✓s_✓h);  thus,  on  logging
  1235.        back  in,  all  the  saved history events will be recorded
  1236.        with the login time as their time stamp.  The  time  stamp
  1237.        printouts  can  be omitted from the history list by adding
  1238.        the -t switch to the _✓h_✓i_✓s_✓t_✓o_✓r_✓y command.  _✓T_✓c_✓s_✓h provides a way
  1239.        to save, restore and clear the history list in a file.
  1240.  
  1241.        _✓h_✓i_✓s_✓t_✓o_✓r_✓y _✓-_✓S _✓[_✓<_✓f_✓i_✓l_✓e_✓n_✓a_✓m_✓e_✓>_✓]
  1242.        _✓h_✓i_✓s_✓t_✓o_✓r_✓y _✓-_✓L _✓[_✓<_✓f_✓i_✓l_✓e_✓n_✓a_✓m_✓e_✓>_✓]
  1243.        _✓h_✓i_✓s_✓t_✓o_✓r_✓y _✓-_✓c
  1244.  
  1245.        The  'S'  flag  saves  the  current history, the 'L' flags
  1246.        loads the history, and the 'c' flag  clears  the  history.
  1247.        If  a  filename  is  not specified, then $HOME/.history is
  1248.        used.
  1249.  
  1250.  
  1251.  
  1252. Cornell 6.03.00          20 November 1992                      19
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. TCSH(1)                                                   TCSH(1)
  1259.  
  1260.  
  1261. 1✓14✓4.✓. D✓DI✓IR✓RE✓EC✓CT✓TO✓OR✓RY✓Y A✓AC✓CC✓CE✓ES✓SS✓S
  1262.        _✓T_✓c_✓s_✓h supports three new flags to control  directory  style
  1263.        printing for cd, pushd, popd, and dirs:
  1264.  
  1265.        _✓-_✓n  Print entries in new lines so that the screen width is
  1266.            not exceeded
  1267.  
  1268.        _✓-_✓l  Don't print   but print the whole path
  1269.  
  1270.        _✓-_✓v  Print the stack entries one in each line, preceded  by
  1271.            the stack number.
  1272.  
  1273.        Note  that popd +n can be used to pop out stack entries of
  1274.        directories that do not exist any more.
  1275.  
  1276.        _✓T_✓c_✓s_✓h always saves the last directory visited. Changing  to
  1277.        the  previous  directory  can  be  done by using _✓'_✓c_✓d _✓-_✓' or
  1278.        _✓'_✓p_✓u_✓s_✓h_✓d _✓-_✓'_✓.
  1279.  
  1280.        _✓T_✓c_✓s_✓h will now allow the user to access all elements in the
  1281.        directory stack directly.  The syntax "=<digit>" is recog-
  1282.        nized by _✓t_✓c_✓s_✓h as indicating a particular directory in  the
  1283.        stack.   (This works for the file/command name recognition
  1284.        as well.)  This syntax is analogous to the  ~  syntax  for
  1285.        access to users' home directories.  The stack is viewed as
  1286.        zero-based, i.e., =0 is the same as  $cwd,  which  is  the
  1287.        same as ".".  As a special case, the string "=-" is recog-
  1288.        nized as indicating  the  last  directory  in  the  stack.
  1289.        Thus,
  1290.  
  1291.              > dirs -v
  1292.              0 /usr/net/bin
  1293.              1 /usr/spool/uucp
  1294.              2 /usr/accts/sys
  1295.              > echo =2
  1296.              /usr/accts/sys
  1297.              > ls -l =1/LOGFILE
  1298.              -rw-r--r-- 1 uucp   2594 Jan 19 09:09 /usr/spool/uucp/LOGFILE
  1299.              > echo =-/.cs*
  1300.              /usr/accts/sys/.cshrc
  1301.              > echo =4
  1302.              Not that many dir stack entries.
  1303.              >
  1304.  
  1305.        _✓T_✓c_✓s_✓h  will  complain if you ask for a directory stack item
  1306.        which does not exist.
  1307.  
  1308.        In the normal _✓c_✓s_✓h_✓, saying  "pushd  +2"  would  rotate  the
  1309.        entire  stack around through 2 stack elements, placing the
  1310.        entry found there at the top of the stack.   If,  however,
  1311.        the  new  shell  variable  _✓d_✓e_✓x_✓t_✓r_✓a_✓c_✓t  is  set, then issuing
  1312.        "pushd +n" will cause the nth directory stack  element  to
  1313.        be extracted from its current position, which will then be
  1314.        pushed onto the top of the stack.  Example:
  1315.  
  1316.  
  1317.  
  1318. Cornell 6.03.00          20 November 1992                      20
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. TCSH(1)                                                   TCSH(1)
  1325.  
  1326.  
  1327.              > dirs
  1328.              ~ /usr/spool/uucp /usr/net/bin /sys/src
  1329.              > set dextract
  1330.              > pushd +2
  1331.              /usr/net/bin ~ /usr/spool/uucp /sys/src
  1332.              > unset dextract
  1333.              > pushd +2
  1334.              /usr/spool/uucp /sys/src /usr/net/bin ~
  1335.  
  1336.        _✓T_✓c_✓s_✓h provides a way to save, restore and clear the  direc-
  1337.        tory stack in a file.
  1338.  
  1339.        _✓d_✓i_✓r_✓s _✓-_✓S _✓[_✓<_✓f_✓i_✓l_✓e_✓n_✓a_✓m_✓e_✓>_✓]
  1340.        _✓d_✓i_✓r_✓s _✓-_✓L _✓[_✓<_✓f_✓i_✓l_✓e_✓n_✓a_✓m_✓e_✓>_✓]
  1341.        _✓d_✓i_✓r_✓s _✓-_✓c
  1342.  
  1343.        The  'S'  flag  saves the current directory stack, the 'L'
  1344.        flags loads the directory stack, and the 'c'  flag  clears
  1345.        the directory stack.  If a filename is not specified, then
  1346.        $HOME/.cshdirs is used.
  1347.  
  1348.        In addition, if the shell variable _✓d_✓u_✓n_✓i_✓q_✓u_✓e  is  set,  only
  1349.        directories  that  are  not already in the directory stack
  1350.        will be added when _✓p_✓u_✓s_✓h is invoked.
  1351.  
  1352.        The way symbolic  links  that  point  to  directories  are
  1353.        crossed   is  determined  by  the  _✓s_✓y_✓m_✓l_✓i_✓n_✓k_✓s  variable.  By
  1354.        default, it is not set to anything and symbolic links  are
  1355.        not  treated  specially. However, it can be set to either:
  1356.        _✓c_✓h_✓a_✓s_✓e_✓, _✓i_✓g_✓n_✓o_✓r_✓e_✓, or _✓e_✓x_✓p_✓a_✓n_✓d_✓.  If _✓s_✓y_✓m_✓l_✓i_✓n_✓k_✓s is  set  to  _✓c_✓h_✓a_✓s_✓e_✓,
  1357.        then  every  time the directory changes, _✓$_✓c_✓w_✓d reflects the
  1358.        real directory name, and not the name through the link.  A
  1359.        notable  exception  is the user's home directory, but that
  1360.        should be fixed. If _✓s_✓y_✓m_✓l_✓i_✓n_✓k_✓s is set to  either  _✓i_✓g_✓n_✓o_✓r_✓e  or
  1361.        _✓e_✓x_✓p_✓a_✓n_✓d_✓, then tcsh tries to determine the current directory
  1362.        name relative to the name of the current directory  before
  1363.        the  link  was  crossed.  In  simple  terms,  if you chdir
  1364.        through a symbolic link and then cd .., you  will  end  ..
  1365.        relatively  to  where you were before you crossed the link
  1366.        and not .. relatively to where the symbolic  link  points.
  1367.        While _✓i_✓g_✓n_✓o_✓r_✓e affects only builtin commands and completion,
  1368.        _✓e_✓x_✓p_✓a_✓n_✓d affects command execution too,  by  `fixing'  argu-
  1369.        ments  that  it  considers to be path names. Unfortunately
  1370.        this does not work in  every  case,  specially  when  file
  1371.        arguments  are  embedded  in command line options.  _✓E_✓x_✓p_✓a_✓n_✓d
  1372.        also allows to specify the `real' (as opposed to  the  one
  1373.        determined  relatively to _✓$_✓c_✓w_✓d_✓)_✓, _✓b_✓y _✓q_✓u_✓o_✓t_✓i_✓n_✓g _✓t_✓h_✓e _✓f_✓i_✓l_✓e _✓a_✓r_✓g_✓u_✓-
  1374.        _✓m_✓e_✓n_✓t_✓.
  1375.  
  1376.        For example:
  1377.  
  1378.              > cd /tmp
  1379.              > mkdir from from/src to
  1380.              > ln -s ../from/src to/dst
  1381.  
  1382.  
  1383.  
  1384. Cornell 6.03.00          20 November 1992                      21
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. TCSH(1)                                                   TCSH(1)
  1391.  
  1392.  
  1393.              > unset symlinks
  1394.              > cd /tmp/to/dst; echo $cwd
  1395.              /tmp/to/dst
  1396.              > cd ..; echo $cwd
  1397.              /tmp/from
  1398.  
  1399.              > set symlinks=chase
  1400.              > cd /tmp/to/dst; echo $cwd
  1401.              /tmp/from/src
  1402.              > cd ..; echo $cwd
  1403.              /tmp/from
  1404.  
  1405.              > set symlinks=ignore
  1406.              > cd /tmp/to/dst; echo $cwd
  1407.              /tmp/to/dst
  1408.              > cd ..; echo $cwd
  1409.              /tmp/to
  1410.  
  1411.              > set symlinks=expand
  1412.              > cd /tmp/to/dst; echo $cwd
  1413.              /tmp/to/dst
  1414.              > cd ..; echo $cwd       # builtin
  1415.              /tmp/to
  1416.              > cd /tmp/to/dst; echo $cwd
  1417.              /tmp/to/dst
  1418.              > cd ".."; echo $cwd          # quoted
  1419.              /tmp/from
  1420.              > /bin/echo ..           # rewrites non builtin commands.
  1421.              /tmp/to
  1422.              > /bin/echo ".."
  1423.  
  1424.        While the _✓e_✓x_✓p_✓a_✓n_✓d setting is the most convenient, and makes
  1425.        symbolic  links  invisible, it can sometimes be misleading
  1426.        and confusing in cases where it fails to  recognize  argu-
  1427.        ments.  A  compromise is to use the _✓i_✓g_✓n_✓o_✓r_✓e setting and use
  1428.        the editor functions "normalize-path", bound by default to
  1429.        _✓^_✓X_✓n_✓.
  1430.  
  1431.  
  1432. 1✓15✓5.✓. W✓WA✓AT✓TC✓CH✓HI✓IN✓NG✓G F✓FO✓OR✓R L✓LO✓OG✓GI✓IN✓NS✓S A✓AN✓ND✓D L✓LO✓OG✓GO✓OU✓UT✓TS✓S
  1433.        _✓T_✓c_✓s_✓h  has a mechanism so that the user can watch for login
  1434.        and logout activity of any user or terminal in the system.
  1435.        This  is accomplished using the new special shell variable
  1436.        _✓w_✓a_✓t_✓c_✓h_✓, which contains login/terminal pattern pairs  to  be
  1437.        checked for activity.  For example:
  1438.  
  1439.              > set watch=(sys ttyjd root console)
  1440.  
  1441.        This setting will allow the user to check on when the user
  1442.        "sys" logs in on /dev/ttyjd.  Similarly,  it  will  inform
  1443.        the  user  of root's activity on the console.  In order to
  1444.        be more general, the word "any"  may  be  substituted  for
  1445.        either a user's or a terminal's name, thus allowing
  1446.  
  1447.  
  1448.  
  1449.  
  1450. Cornell 6.03.00          20 November 1992                      22
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. TCSH(1)                                                   TCSH(1)
  1457.  
  1458.  
  1459.              > set watch=('b*' any any ttyh0)
  1460.  
  1461.        which  will  check  for  users that match the pattern 'b*'
  1462.        logging in or out of the system on any terminal,  as  well
  1463.        as  anyone  logging  in to /dev/ttyh0. Naturally, the com-
  1464.        pletely general case
  1465.  
  1466.              > set watch=(any any)
  1467.  
  1468.        allows the user to  check  on  any  and  all  login/logout
  1469.        activity in the the system.
  1470.  
  1471.        By  default,  the  interval between checks of users on the
  1472.        system is 10 minutes; this can be changed  by  making  the
  1473.        first element of _✓w_✓a_✓t_✓c_✓h a number of minutes which should be
  1474.        used instead, as in
  1475.  
  1476.              > set watch=(40 any any)
  1477.  
  1478.        which will check for any users logging in or out every  40
  1479.        minutes.
  1480.  
  1481.        There  is  also a new command, _✓l_✓o_✓g_✓, which is used to cause
  1482.        _✓t_✓c_✓s_✓h to inform the user of all users/terminals affected by
  1483.        _✓w_✓a_✓t_✓c_✓h  whether  they  have  been  announced before or not.
  1484.        This is useful if a user has been on  for  some  time  and
  1485.        cannot  remember if a particular person/terminal is online
  1486.        right now or not.  _✓L_✓o_✓g will reset all indication of previ-
  1487.        ous announcement and give the user the login list all over
  1488.        again, as well as printing the current value of _✓w_✓a_✓t_✓c_✓h_✓.
  1489.  
  1490.        The first time that _✓w_✓a_✓t_✓c_✓h is  set  at  _✓t_✓c_✓s_✓h  startup,  all
  1491.        affected  users  and  terminals  will be printed as though
  1492.        those users/terminals had just logged on.  This may appear
  1493.        to  be a bug, but is generally considered a feature, since
  1494.        it allows the user to see who is on when he first logs in.
  1495.  
  1496.        The format of the printouts can be tailored via setting of
  1497.        the variable _✓w_✓h_✓o_✓.  In addition to the  standard  prompt  %
  1498.        escapes,  the  following  sequences  are available for the
  1499.        format specification:
  1500.  
  1501.              %n          The name of the user that logged in/out.
  1502.              %a          The observed action, i.e. "logged on",
  1503.                          "logged off", or "replaced <olduser> on".
  1504.              %l          The line (tty) the user is logged on.
  1505.              %M          The full hostname of the remote host ("local"
  1506.                          if non-remote).
  1507.              %m          The hostname up to the first ".". If only
  1508.                          the ip address is available or the utmp
  1509.                          field contains the name of an x-windows
  1510.                          display, the whole name is printed.
  1511.  
  1512.        The %M and %m sequences are only available on systems that
  1513.  
  1514.  
  1515.  
  1516. Cornell 6.03.00          20 November 1992                      23
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. TCSH(1)                                                   TCSH(1)
  1523.  
  1524.  
  1525.        store the remote hostname in /etc/utmp. If _✓w_✓h_✓o is not set,
  1526.        the format defaults to "%n has %a %l from %m.", or "%n has
  1527.        %a %l." on systems that don't store the hostname.
  1528.  
  1529.  
  1530. 1✓16✓6.✓. T✓TI✓IM✓ME✓ED✓D E✓EV✓VE✓EN✓NT✓T L✓LI✓IS✓ST✓T
  1531.        _✓T_✓c_✓s_✓h  now  supports a scheduled-event list through the use
  1532.        of the command _✓s_✓c_✓h_✓e_✓d_✓.  This command gives the user a mech-
  1533.        anism  by  which  to arrange for other commands to be exe-
  1534.        cuted at given times.  An event is added to the scheduled-
  1535.        event list by saying
  1536.  
  1537.              > sched [+]hh:mm <command>
  1538.  
  1539.        as in
  1540.  
  1541.              > sched 11:00 echo It\'s eleven o\'clock.
  1542.  
  1543.        This  will  make an entry in the list at 11am for the echo
  1544.        command to be run with the given arguments.  The time  may
  1545.        be  specified  in  either  absolute  or relative time, and
  1546.        absolute times may have a morning/afternoon  specification
  1547.        as well, using "am" or "pm."  For example,
  1548.  
  1549.              > sched +2:15 /usr/lib/uucp/uucico -r1 -sother
  1550.              > sched 5pm set prompt='[%h] It\'s after 5; go home: >'
  1551.              > sched +3am echo This syntax doesn\'t work.
  1552.              Relative time inconsistent with am/pm.
  1553.              >
  1554.  
  1555.        Note  that  _✓t_✓c_✓s_✓h  will  complain if you try to make faulty
  1556.        time specifications.
  1557.  
  1558.        Printing the current time-event list  is  accomplished  by
  1559.        giving the _✓s_✓c_✓h_✓e_✓d command with no arguments:
  1560.  
  1561.              > sched
  1562.                   1  Wed Apr  4 15:42  /usr/lib/uucp/uucico -r1 -sother
  1563.                   2  Wed Apr  4 17:00  set prompt=[%h] It's after 5; go home: >
  1564.              >
  1565.  
  1566.        There  is also a mechanism by which the user can remove an
  1567.        item from the list:
  1568.  
  1569.              > sched --3
  1570.              Usage for delete: sched -<item#>.
  1571.              > sched -3
  1572.              Not that many scheduled events.
  1573.              > sched -2
  1574.              > sched
  1575.                   1  Wed Apr  4 15:42  /usr/lib/uucp/uucico -r1 -sother
  1576.              >
  1577.  
  1578.        All commands specified on the scheduled-event list will be
  1579.  
  1580.  
  1581.  
  1582. Cornell 6.03.00          20 November 1992                      24
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. TCSH(1)                                                   TCSH(1)
  1589.  
  1590.  
  1591.        executed  just  prior to printing the first prompt immedi-
  1592.        ately following the time when the command is  to  be  run.
  1593.        Hence, it is possible to miss the exact time when the com-
  1594.        mand is to be run, but _✓t_✓c_✓s_✓h will definitely get around  to
  1595.        all commands which are overdue at its next prompt.  Sched-
  1596.        uled-event list items which come due while _✓t_✓c_✓s_✓h is waiting
  1597.        for  user input will be executed immediately.  In no case,
  1598.        however, will normal operation of already-running commands
  1599.        be  interrupted so that a scheduled-event list element may
  1600.        be run.
  1601.  
  1602.        This mechanism is similar to, but not  the  same  as,  the
  1603.        _✓a_✓t(1)  command  on some Unix systems.  Its major disadvan-
  1604.        tage is that it does not  necessarily  run  a  command  at
  1605.        exactly the specified time (but only if another command is
  1606.        already being run).  Its major advantage is that  commands
  1607.        which  run directly from _✓t_✓c_✓s_✓h_✓, as sched commands are, have
  1608.        access to shell variables and other structures.  This pro-
  1609.        vides  a  mechanism for changing one's working environment
  1610.        based on the time of day.
  1611.  
  1612.  
  1613. 1✓17✓7.✓. B✓BU✓UI✓IL✓LT✓TI✓IN✓N F✓FO✓OR✓R l✓ls✓s -✓-F✓F
  1614.        There is a new builtin command called _✓l_✓s_✓-_✓F which does  the
  1615.        same  thing as the command "ls -F".  If the shell variable
  1616.        _✓s_✓h_✓o_✓w_✓d_✓o_✓t_✓s has been set, it acts like "ls -aF". If  _✓s_✓h_✓o_✓w_✓d_✓o_✓t_✓s
  1617.        is equal to "-A", then _✓l_✓s_✓-_✓F acts like "ls -AF". Ls-F works
  1618.        like ls, only it is generally faster, since  it  does  not
  1619.        need  to fork and exec, and safer against Trojan horses if
  1620.        the user has `.' in the execution path.  If other switches
  1621.        are passed to _✓l_✓s_✓-_✓F_✓, then the normal ls is executed. Alias-
  1622.        ing ls to ls-F provides a fast alternative way of  listing
  1623.        files.   Note that on non BSD machines, where ls -C is not
  1624.        the default, _✓l_✓s_✓-_✓F_✓, behaves like ls -CF.
  1625.  
  1626.        _✓l_✓s_✓-_✓F appends the following  characters  depending  on  the
  1627.        file type:
  1628.  
  1629.              =           File is an AF_UNIX domain socket.
  1630.                          [if system supports sockets]
  1631.              |           File is a named pipe (fifo)
  1632.                          [if system supports named pipes]
  1633.              %           File is a character device
  1634.              #           File is a block device
  1635.              /           File is a directory
  1636.              *           File is executable
  1637.              +           File is a hidden directory [aix]
  1638.                          or context dependent [hpux]
  1639.              :           File is network special [hpux]
  1640.  
  1641.        On  systems  that  support  symbolic  links  the  variable
  1642.        _✓l_✓i_✓s_✓t_✓l_✓i_✓n_✓k_✓s controls the way symbolic links are  identified.
  1643.        If _✓l_✓i_✓s_✓t_✓l_✓i_✓n_✓k_✓s is not set then the character '@' is appended
  1644.        to the file.  If  _✓l_✓i_✓s_✓t_✓l_✓i_✓n_✓k_✓s  is  set  then  the  following
  1645.  
  1646.  
  1647.  
  1648. Cornell 6.03.00          20 November 1992                      25
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. TCSH(1)                                                   TCSH(1)
  1655.  
  1656.  
  1657.        characters  are  appended to the filename depending on the
  1658.        type of file the symbolic links points to:
  1659.  
  1660.              @           File is a symbolic link pointing
  1661.                          to a non-directory
  1662.              >           File is a symbolic link pointing
  1663.                          to a directory
  1664.              &           File is a symbolic link pointing
  1665.                          to nowhere
  1666.  
  1667.        While setting _✓l_✓i_✓s_✓t_✓l_✓i_✓n_✓k_✓s can be  helpful  while  navigating
  1668.        around  the  file system, it slows down _✓l_✓s_✓-_✓F and it causes
  1669.        mounting of file systems if the symbolic links point to an
  1670.        NFS auto-mounted partition.
  1671.  
  1672.  
  1673. 1✓18✓8.✓. G✓GL✓LO✓OB✓BB✓BI✓IN✓NG✓G S✓SY✓YN✓NT✓TA✓AX✓X A✓AD✓DD✓DI✓IT✓TI✓IO✓ON✓NS✓S
  1674.        The syntax for any character in a range (for example ".[a-
  1675.        z]*") has been extended so as  to  conform  with  standard
  1676.        Unix regular expression syntax (see _✓e_✓d(1)).  Specifically,
  1677.        after an open bracket ("["), if the first character  is  a
  1678.        caret  ("^") then the character matched will be any not in
  1679.        the range specified.  For example:
  1680.  
  1681.              > cd ~
  1682.              > echo .[a-z]*
  1683.              .cshrc .emacs .login .logout .menuwmrc
  1684.              > echo .[^.]*
  1685.              .Xdefaults .Xinit .cshrc .emacs .login .logout .menuwmrc
  1686.              >
  1687.  
  1688.        Note that the second form includes .Xdefaults  and  .Xinit
  1689.        because  'X'  (and all the lower case letters) are outside
  1690.        of the range of a single '.'.
  1691.  
  1692.        Also the ability to negate a  globbing  pattern  has  been
  1693.        added:
  1694.  
  1695.              > echo *
  1696.              foo foobar bar barfoo
  1697.              > echo ^foo*
  1698.              bar barfoo
  1699.  
  1700.        Note  that  this does not work correctly if the expression
  1701.        does not have any wildcard characters  (?*[])  or  if  the
  1702.        expression has braces {}.
  1703.  
  1704.  
  1705. 1✓19✓9.✓. N✓NE✓EW✓W E✓EN✓NV✓VI✓IR✓RO✓ON✓NM✓ME✓EN✓NT✓T A✓AN✓ND✓D S✓SH✓HE✓EL✓LL✓L V✓VA✓AR✓RI✓IA✓AB✓BL✓LE✓ES✓S
  1706.        On  startup,  _✓t_✓c_✓s_✓h now automatically initializes the envi-
  1707.        ronment variable _✓H_✓O_✓S_✓T to the name of the machine  that  it
  1708.        is  running  on.   It  does this by doing a _✓g_✓e_✓t_✓h_✓o_✓s_✓t_✓n_✓a_✓m_✓e(2)
  1709.        system call, and setting _✓H_✓O_✓S_✓T to the result.
  1710.  
  1711.  
  1712.  
  1713.  
  1714. Cornell 6.03.00          20 November 1992                      26
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. TCSH(1)                                                   TCSH(1)
  1721.  
  1722.  
  1723.        _✓T_✓c_✓s_✓h also initializes the environment variable _✓H_✓O_✓S_✓T_✓T_✓Y_✓P_✓E to
  1724.        a  symbolic  name for the type of computer that it is run-
  1725.        ning on.  This is useful when sharing  a  single  physical
  1726.        directory  between several types of machines (running NFS,
  1727.        for instance).   For  example,  if  the  following  is  in
  1728.        _✓._✓l_✓o_✓g_✓i_✓n_✓:
  1729.  
  1730.           set  path  =  (~/bin.$HOSTTYPE  /usr/ucb  /bin /usr/bin
  1731.           /usr/games .)
  1732.  
  1733.        and the user has directories  named  "bin._✓m_✓a_✓c_✓h_✓i_✓n_✓e"  (where
  1734.        _✓m_✓a_✓c_✓h_✓i_✓n_✓e  is a name from the list below), then the user can
  1735.        have the same programs compiled for different machines  in
  1736.        the  appropriate  "bin._✓m_✓a_✓c_✓h_✓i_✓n_✓e"  directories and _✓t_✓c_✓s_✓h will
  1737.        run the binary for the correct machine.
  1738.  
  1739.        The current possible values are:
  1740.  
  1741.        _✓3_✓8_✓6_✓B_✓S_✓D         an Intel 386, running 386BSD
  1742.        _✓a_✓i_✓x_✓3_✓7_✓0         an IBM 370, running aix
  1743.        _✓a_✓i_✓x_✓E_✓S_✓A         an IBM ESA, running aix
  1744.        _✓a_✓l_✓l_✓i_✓a_✓n_✓t        an Alliant FX series
  1745.        _✓a_✓l_✓l_✓i_✓a_✓n_✓t_✓-_✓f_✓x_✓8_✓0   an Alliant FX80 (mc68000 based)
  1746.        _✓a_✓l_✓l_✓i_✓a_✓n_✓t_✓-_✓f_✓x_✓2_✓8_✓0_✓0 an Alliant FX2800 (i860 based)
  1747.        _✓a_✓l_✓p_✓h_✓a          an DEC Alpha running OSF/1
  1748.        _✓a_✓m_✓d_✓a_✓h_✓l         an Amdahl running uts 2.1
  1749.        _✓a_✓m_✓i_✓g_✓a          an amiga running amix 2.02
  1750.        _✓a_✓p_✓o_✓l_✓l_✓o         an Apollo running DomainOS
  1751.        _✓a_✓t_✓t_✓3_✓b_✓1_✓5        an AT&T 3b15
  1752.        _✓a_✓t_✓t_✓3_✓b_✓2         an AT&T 3b2
  1753.        _✓a_✓t_✓t_✓3_✓b_✓2_✓0        an AT&T 3b20
  1754.        _✓a_✓t_✓t_✓3_✓b_✓5         an AT&T 3b5
  1755.        _✓b_✓a_✓l_✓a_✓n_✓c_✓e        a Sequent Balance (32000 based)
  1756.        _✓b_✓s_✓d_✓3_✓8_✓6         an Intel 386, running BSDI's bsd386
  1757.        _✓b_✓u_✓t_✓t_✓e_✓r_✓f_✓l_✓y      a BBN Computer Butterfly 1000
  1758.        _✓c_✓o_✓h_✓3_✓8_✓6         a 386 running Coherent 4.0
  1759.        _✓c_✓o_✓h_✓e_✓r_✓e_✓n_✓t       an unknown machine running Coherent
  1760.        _✓c_✓o_✓n_✓v_✓e_✓x         a Convex
  1761.        _✓c_✓r_✓a_✓y           a Cray running Unicos
  1762.        _✓d_✓e_✓c_✓s_✓t_✓a_✓t_✓i_✓o_✓n     a DecStation XXXX
  1763.        _✓e_✓t_✓a_✓1_✓0          an ETA 10 running SVR3
  1764.        _✓g_✓o_✓u_✓l_✓d_✓-_✓n_✓p_✓1      a Gould NP1
  1765.        _✓h_✓k_✓6_✓8           a Heurikon HK68 running Uniplus+ 5.0
  1766.        _✓h_✓p_✓3_✓0_✓0          an HP 9000, series 300, running mtXinu
  1767.        _✓h_✓p_✓8_✓0_✓0          an HP 9000, series 800, running mtXinu
  1768.        _✓h_✓p_✓9_✓0_✓0_✓0_✓s_✓3_✓0_✓0     an HP 9000, series 300, running hpux
  1769.        _✓h_✓p_✓9_✓0_✓0_✓0_✓s_✓5_✓0_✓0     an HP 9000, series 500, running hpux
  1770.        _✓h_✓p_✓9_✓0_✓0_✓0_✓s_✓7_✓0_✓0     an HP 9000, series 700, running hpux
  1771.        _✓h_✓p_✓9_✓0_✓0_✓0_✓s_✓8_✓0_✓0     an HP 9000, series 800, running hpux
  1772.        _✓h_✓p             an HP, running hpux
  1773.        _✓i_✓3_✓8_✓6           an Intel 386, generic
  1774.        _✓i_✓3_✓8_✓6_✓-_✓m_✓a_✓c_✓h      an Intel 386, running mach
  1775.        _✓i_✓3_✓8_✓6_✓-_✓l_✓i_✓n_✓u_✓x     an Intel 386, running Linux
  1776.        _✓i_✓3_✓8_✓6_✓-_✓e_✓m_✓x       an Intel 386, running emx [unix emulation under OS/2]
  1777.  
  1778.  
  1779.  
  1780. Cornell 6.03.00          20 November 1992                      27
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. TCSH(1)                                                   TCSH(1)
  1787.  
  1788.  
  1789.        _✓i_✓n_✓t_✓e_✓l_✓3_✓8_✓6       an Intel 386, running INTEL's SVR3
  1790.        _✓i_✓r_✓i_✓s_✓3_✓d         a Silicon Graphics Iris 3000
  1791.        _✓i_✓r_✓i_✓s_✓4_✓d         a Silicon Graphics Iris 4D
  1792.        _✓i_✓s_✓c_✓3_✓8_✓6         an Intel 386, running ISC
  1793.        _✓m_✓8_✓8_✓k           an mc88000 CPU machine
  1794.        _✓m_✓a_✓c_✓2           an Apple Computer Macintosh II, running AUX
  1795.        _✓m_✓a_✓s_✓s_✓c_✓o_✓m_✓p       a Concurrent (Masscomp), running RTU
  1796.        _✓m_✓i_✓n_✓i_✓x_✓3_✓8_✓6       an i386 running minix
  1797.        _✓m_✓i_✓n_✓i_✓x          a mac or an amiga running minix
  1798.        _✓m_✓i_✓p_✓s           another mips CPU
  1799.        _✓m_✓u_✓l_✓t_✓i_✓m_✓a_✓x       an Encore Computer Corp. Multimax (32000 based)
  1800.        _✓n_✓e_✓w_✓s           a Sony NEWS 800 or 1700 workstation
  1801.        _✓n_✓e_✓w_✓s_✓__✓m_✓i_✓p_✓s      a NeWS machine with mips CPU
  1802.        _✓n_✓d_✓5_✓0_✓0          a Norsk Data ND 500/5000 running Ndix
  1803.        _✓n_✓s_✓3_✓2_✓0_✓0_✓0        an NS32000 CPU machine
  1804.        _✓n_✓e_✓x_✓t           a NeXT computer
  1805.        _✓p_✓f_✓a_✓5_✓0          a PFU/Fujitsu A-xx computer
  1806.        _✓p_✓s_✓2            an IBM PS/2, running aix
  1807.        _✓p_✓t_✓x            a Sequent Symmetry running DYNIX/ptx (386/486 based)
  1808.        _✓p_✓y_✓r_✓a_✓m_✓i_✓d        a Pyramid Technology computer (of any flavor)
  1809.        _✓r_✓s_✓6_✓0_✓0_✓0         an IBM RS6000, running aix
  1810.        _✓r_✓t             an IBM PC/RT, running BSD (AOS 4.3) or mach
  1811.        _✓r_✓t_✓p_✓c           an IBM PC/RT, running aix
  1812.        _✓s_✓c_✓o_✓3_✓8_✓6         an Intel 386, running SCO
  1813.        _✓s_✓t_✓e_✓l_✓l_✓a_✓r        a stellar running stellix
  1814.        _✓s_✓u_✓n            a Sun workstation of none of the above types
  1815.        _✓s_✓u_✓n_✓2           a Sun Microsystems series 2 workstation (68010 based)
  1816.        _✓s_✓u_✓n_✓3           a Sun Microsystems series 3 workstation (68020 based)
  1817.        _✓s_✓u_✓n_✓3_✓8_✓6_✓i        a Sun Microsystems 386i workstation (386 based)
  1818.        _✓s_✓u_✓n_✓4           a Sun Microsystems series 4 workstation (SPARC based)
  1819.        _✓s_✓y_✓m_✓m_✓e_✓t_✓r_✓y       a Sequent Symmetry running DYNIX 3 (386/486 based)
  1820.        _✓s_✓y_✓s_✓V_✓8_✓8         a Motorola MPC running System V/88 R32V2 (SVR3/88100 based)
  1821.        _✓t_✓a_✓h_✓o_✓e          a tahoe running 4BSD
  1822.        _✓t_✓e_✓k_✓4_✓3_✓0_✓0        a Tektronix 4300 running UTek (BSD 4.2 / 68020 based)
  1823.        _✓t_✓e_✓k_✓X_✓D_✓8_✓8        a Tektronix XD88/10 running UTekV 3.2e (SVR3/88100 based)
  1824.        _✓t_✓i_✓t_✓a_✓n          an Stardent Titan
  1825.        _✓u_✓n_✓i_✓x_✓p_✓c         an UNIX/PC running SVR1 att7300 aka att3b1
  1826.        _✓v_✓a_✓x            a Digital Equipment Corp. Vax (of any flavor)
  1827.        _✓v_✓i_✓s_✓t_✓r_✓a_✓8_✓0_✓0      a Stardent Vistra 800 running SVR4
  1828.        _✓V_✓M_✓S_✓-_✓P_✓O_✓S_✓I_✓X      a vax? running VMS/POSIX
  1829.  
  1830.        (The names of the machines are usually trade marks of  the
  1831.        corresponding companies.)
  1832.  
  1833.        _✓T_✓c_✓s_✓h  also  initializes the shell variables _✓u_✓i_✓d and _✓g_✓i_✓d to
  1834.        the value of the current real user ID/GID.  This is useful
  1835.        for telling what user/group the shell is running as. Under
  1836.        Domain/OS _✓t_✓c_✓s_✓h will also set _✓o_✓i_✓d  indicating  the  current
  1837.        real organization id.
  1838.  
  1839.  
  1840. 2✓20✓0.✓. C✓CO✓OM✓MM✓MA✓AN✓ND✓DS✓S F✓FO✓OR✓R D✓DE✓EB✓BU✓UG✓GG✓GI✓IN✓NG✓G
  1841.        Only  two  such commands are available at this point, both
  1842.        concerned with testing termcap entries.
  1843.  
  1844.  
  1845.  
  1846. Cornell 6.03.00          20 November 1992                      28
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. TCSH(1)                                                   TCSH(1)
  1853.  
  1854.  
  1855.        _✓t_✓e_✓l_✓l_✓t_✓c tells you, politely, what _✓t_✓c_✓s_✓h thinks of your  ter-
  1856.        minal,  and _✓s_✓e_✓t_✓t_✓c `cap' `value' tells _✓t_✓c_✓s_✓h to believe that
  1857.        the termcap capability `cap' ( as defined in _✓t_✓e_✓r_✓m_✓c_✓a_✓p(5)  )
  1858.        has  the  value  `value'.  No  checking for sanity is per-
  1859.        formed, so beware of improper use.
  1860.  
  1861.        Note that Concept terminal users may have to "settc xn no"
  1862.        to get proper wrapping at the rightmost column.
  1863.  
  1864.  
  1865. 2✓21✓1.✓. S✓SE✓EA✓AR✓RC✓CH✓HI✓IN✓NG✓G F✓FO✓OR✓R T✓TH✓HE✓E V✓VI✓IS✓SU✓UA✓AL✓L H✓HI✓IS✓ST✓TO✓OR✓RY✓Y
  1866.        Four  new  editor functions have been added in emacs mode:
  1867.        Two of them, history-search-backward, bound to M-p (and M-
  1868.        P),  and  history-search-forward,  bound to M-n (and M-N),
  1869.        implement a conventional search mechanism, while the other
  1870.        two,  i-search-back  and  i-search-fwd,  both  unbound  by
  1871.        default, implement the emacs-style incremental search.
  1872.  
  1873.        History-search-backward (history-search-forward)  searches
  1874.        backward  (forward)  through the history list for previous
  1875.        (next) occurrence of the beginning of the input buffer  as
  1876.        a command.  That is, if the user types:
  1877.  
  1878.              > echo foo
  1879.              foo
  1880.              > ls
  1881.              filea     fileb
  1882.              > echo bar
  1883.              bar
  1884.              >
  1885.  
  1886.        and  then  types  "echo<ESC>p", the shell will place "echo
  1887.        bar" in the editing buffer.  If another _✓M_✓-_✓p  was  entered,
  1888.        the editing buffer would change to "echo foo".  This capa-
  1889.        bility is compatible with the plain visual history; if the
  1890.        user  were  to  then  enter _✓^_✓P the editing buffer would be
  1891.        changed to "ls". The pattern used to  search  through  the
  1892.        history is defined by the characters from the beginning of
  1893.        the line up to the current cursor position and may contain
  1894.        a  shell globbing pattern. Successive history searches use
  1895.        the same pattern.
  1896.  
  1897.        When the incremental search functions are used, a prompt -
  1898.        "bck:"  or  "fwd:",  depending  on  the chosen direction -
  1899.        appears, and characters typed are appended to  the  search
  1900.        pattern.  The matching command line is placed in the edit-
  1901.        ing buffer, with the cursor positioned at the point  where
  1902.        the pattern was found (the incremental search will also do
  1903.        searching within a command line).  If  the  search  fails,
  1904.        the  terminal  bell  is rung, and the ':' in the prompt is
  1905.        changed to '?'.
  1906.  
  1907.        If these functions are bound to single characters, and one
  1908.        of those is typed again during the incremental search, the
  1909.  
  1910.  
  1911.  
  1912. Cornell 6.03.00          20 November 1992                      29
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. TCSH(1)                                                   TCSH(1)
  1919.  
  1920.  
  1921.        search continues in the corresponding direction, with  the
  1922.        pattern  unchanged;  if  the  previous search failed, this
  1923.        will also cause it to  "wrap  around"  the  history  list.
  1924.        Finally,  the  following  characters  also  have a special
  1925.        meaning during the search:
  1926.  
  1927.              Delete      (or any character bound to _✓b_✓a_✓c_✓k_✓w_✓a_✓r_✓d_✓-_✓d_✓e_✓l_✓e_✓t_✓e_✓-_✓c_✓h_✓a_✓r)
  1928.                          Undo the effect of the last character typed,
  1929.                          deleting a character from the pattern if appropriate.
  1930.              ^G          Abort the search, back to the last successful one
  1931.                          if previous search failed, otherwise entire search.
  1932.              ^W          Append the rest of the current word to the pattern.
  1933.              ESC         Terminate the search, leaving current line in buffer.
  1934.  
  1935.        Any other character,  that  isn't  bound  to  _✓s_✓e_✓l_✓f_✓-_✓i_✓n_✓s_✓e_✓r_✓t_✓-
  1936.        _✓c_✓o_✓m_✓m_✓a_✓n_✓d_✓,  terminates  the search, leaving the current com-
  1937.        mand line in the editing buffer, after which  _✓t_✓c_✓s_✓h  inter-
  1938.        prets  the  character  as if it was normal input - notably
  1939.        _✓R_✓e_✓t_✓u_✓r_✓n will cause the current command line to be executed.
  1940.  
  1941.        In  vi mode "vi-search-fwd" (bound to '/') and "vi-search-
  1942.        back" (bound to '?')  can be used  to  search  the  visual
  1943.        history.  In  command  mode '/' or '?' followed by a shell
  1944.        pattern, searches the visual history for the pattern.  The
  1945.        pattern  can  be terminated either with a _✓R_✓e_✓t_✓u_✓r_✓n_✓, in which
  1946.        case the matched history event is placed  in  the  command
  1947.        buffer  or  an  _✓E_✓s_✓c_✓a_✓p_✓e_✓,  in which case the matched history
  1948.        event is executed. If no history event matches  the  shell
  1949.        pattern then the bell is rung.
  1950.  
  1951.  
  1952. 2✓22✓2.✓. B✓BU✓UI✓IL✓LT✓TI✓IN✓N W✓WH✓HI✓IC✓CH✓H(✓(1✓1)✓)/✓/W✓WH✓HE✓ER✓RE✓E C✓CO✓OM✓MM✓MA✓AN✓ND✓DS✓S
  1953.        There  is  now  a builtin version of the _✓w_✓h_✓i_✓c_✓h(1) command.
  1954.        The builtin version is just like the original, except that
  1955.        it  correctly  reports  aliases peculiar to this _✓t_✓c_✓s_✓h_✓, and
  1956.        builtin commands.  The only other difference is  that  the
  1957.        builtin  runs  somewhere  between 10 and 100 times faster.
  1958.        There is also a key-function interface  to  this  command:
  1959.        the _✓w_✓h_✓i_✓c_✓h_✓-_✓c_✓o_✓m_✓m_✓a_✓n_✓d function (normally bound to M-?), can be
  1960.        used anywhere on the command line, and will in effect do a
  1961.        'which' on the command name.
  1962.  
  1963.        Similarly  where  will  report  all known instances of the
  1964.        command: aliases, builtins, as well as all  references  in
  1965.        the path.
  1966.  
  1967.  
  1968. 2✓23✓3.✓. R✓RE✓ES✓ST✓TA✓AR✓RT✓TI✓IN✓NG✓G A✓A S✓ST✓TO✓OP✓PP✓PE✓ED✓D E✓ED✓DI✓IT✓TO✓OR✓R
  1969.        There is another new editor function: run-fg-editor, which
  1970.        is bound to _✓M_✓-_✓^_✓Z.  When typed, it saves away  the  current
  1971.        input  buffer,  and  looks  for  a stopped job with a name
  1972.        equal to the file name part (last element) of  either  the
  1973.        EDITOR  or  VISUAL  environment variables (if not defined,
  1974.        the default names are "ed"  and  "vi"  respectively).   If
  1975.  
  1976.  
  1977.  
  1978. Cornell 6.03.00          20 November 1992                      30
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. TCSH(1)                                                   TCSH(1)
  1985.  
  1986.  
  1987.        such a job is found, then it is restarted as if "fg %_✓n_✓a_✓m_✓e"
  1988.        had been typed.  This is used to  toggle  back  and  forth
  1989.        between  an editor and the shell easily.  Some people bind
  1990.        this function to _✓^_✓Z so they can do this even more  easily.
  1991.  
  1992.  
  1993. 2✓24✓4.✓. S✓ST✓TA✓AT✓TU✓US✓S L✓LI✓IN✓NE✓E S✓SU✓UP✓PP✓PO✓OR✓RT✓T
  1994.        _✓T_✓c_✓s_✓h  has a new builtin called _✓e_✓c_✓h_✓o_✓t_✓c that allows the user
  1995.        to access the terminal capabilities from the command line,
  1996.        similar to the system V _✓t_✓p_✓u_✓t(1).
  1997.  
  1998.              > echotc home
  1999.  
  2000.        Places the cursor at the home position and
  2001.  
  2002.              > echotc cm 3 10
  2003.  
  2004.        places  the  cursor  at  column  3  row  10.  This command
  2005.        replaces the _✓e_✓l and _✓s_✓l variables  that  used  contain  the
  2006.        escape sequences to begin and end status line changes. The
  2007.        command:
  2008.  
  2009.              > echo $sl this is a test $el
  2010.  
  2011.        is replaced by:
  2012.  
  2013.              > echotc ts 0; echo "this is a test"; echotc fs
  2014.  
  2015.        In addition _✓e_✓c_✓h_✓o_✓t_✓c understands the arguments _✓b_✓a_✓u_✓d_✓,  _✓l_✓i_✓n_✓e_✓s_✓,
  2016.        _✓c_✓o_✓l_✓s_✓,  _✓m_✓e_✓t_✓a_✓, and _✓t_✓a_✓b_✓s And prints the baud rate, the number
  2017.        of lines and columns, and "yes" or "no" depending  if  the
  2018.        terminal  has  tabs  or a meta key.  This can be useful in
  2019.        determining how terse  the  output  of  commands  will  be
  2020.        depending  on the baud rate, or setting limits to commands
  2021.        like history to the highest number so  that  the  terminal
  2022.        does not scroll:
  2023.  
  2024.              > set history=`echotc lines`
  2025.              > @ history--
  2026.  
  2027.        Note: Termcap strings may contain wildcard characters, and
  2028.        echoing them will not work correctly. The suggested method
  2029.        of  setting shell variables to terminal capability strings
  2030.        is using double quotes, as in the following  example  that
  2031.        places the date in the status line:
  2032.  
  2033.              > set tosl="`echotc ts 0`"
  2034.              > set frsl="`echotc fs`"
  2035.              > echo -n "$tosl";date; echo -n "$frsl"
  2036.  
  2037.        _✓E_✓c_✓h_✓o_✓t_✓c accepts two flags. The flag _✓-_✓v enables verbose mes-
  2038.        sages and the flag _✓-_✓s ignores any errors and  returns  the
  2039.        empty string if the capability is not found.
  2040.  
  2041.  
  2042.  
  2043.  
  2044. Cornell 6.03.00          20 November 1992                      31
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050. TCSH(1)                                                   TCSH(1)
  2051.  
  2052.  
  2053. 2✓25✓5.✓.  E✓EX✓XE✓EC✓CU✓UT✓TI✓IO✓ON✓N  O✓OF✓F  A✓A  C✓CO✓OM✓MM✓MA✓AN✓ND✓D A✓AF✓FT✓TE✓ER✓R C✓CH✓HA✓AN✓NG✓GI✓IN✓NG✓G T✓TH✓HE✓E C✓CU✓UR✓RR✓RE✓EN✓NT✓T W✓WO✓OR✓RK✓KI✓IN✓NG✓G
  2054.        D✓DI✓IR✓RE✓EC✓CT✓TO✓OR✓RY✓Y
  2055.        _✓T_✓c_✓s_✓h now supports a special alias, _✓c_✓w_✓d_✓c_✓m_✓d_✓,  which  if  set
  2056.        holds  a  command that will be executed after changing the
  2057.        value of $cwd.  For example, if the user is running on  an
  2058.        X  window  system _✓x_✓t_✓e_✓r_✓m_✓(_✓1_✓)_✓, and a re-parenting window man-
  2059.        ager that supports title bars such as _✓t_✓w_✓m_✓(_✓1_✓) _✓a_✓n_✓d _✓h_✓a_✓s _✓d_✓o_✓n_✓e_✓:
  2060.  
  2061.              > alias cwdcmd  'echo -n "^[]2;${HOST}:$cwd ^G"'
  2062.  
  2063.        then  the  shell  will  change  the  title  of the running
  2064.        _✓x_✓t_✓e_✓r_✓m_✓(_✓1_✓) to be the name of the host, a colon, and the full
  2065.        current  working  directory.   A more fancy way to do that
  2066.        is:
  2067.  
  2068.              >        alias        cwdcmd        'echo         -n
  2069.              "^[]2;${HOST}:$cwd^G^[]1;${HOST}^G"'
  2070.  
  2071.        This  will  put  the hostname and working directory on the
  2072.        title bar but only the hostname in the icon manager  menu.
  2073.        Note that if a user defines _✓c_✓w_✓d_✓c_✓m_✓d to contain a _✓c_✓d_✓, _✓p_✓u_✓s_✓h_✓d_✓,
  2074.        or _✓p_✓o_✓p_✓d_✓, command, an infinite loop may  result.   In  this
  2075.        case,  it  is the author's opinion that said user will get
  2076.        what he deserves.
  2077.  
  2078.  
  2079. 2✓26✓6.✓. N✓NA✓AT✓TI✓IV✓VE✓E L✓LA✓AN✓NG✓GU✓UA✓AG✓GE✓E S✓SY✓YS✓ST✓TE✓EM✓M
  2080.        _✓T_✓c_✓s_✓h is eight bit clean (if so compiled, see the  descrip-
  2081.        tion  of  the _✓v_✓e_✓r_✓s_✓i_✓o_✓n shell variable below), and will thus
  2082.        support character sets needing this capability.  The  _✓t_✓c_✓s_✓h
  2083.        support  for  NLS differs depending on whether it was com-
  2084.        piled to use the system's  NLS  (again,  see  the  _✓v_✓e_✓r_✓s_✓i_✓o_✓n
  2085.        variable) or not.  In either case, the default for charac-
  2086.        ter classification (i.e. which  characters  are  printable
  2087.        etc) and sorting is 7-bit ascii, and any setting or unset-
  2088.        ting of the LANG or LC_CTYPE  environment  variables  will
  2089.        cause a check for possible changes in these respects.
  2090.  
  2091.        When using the system's NLS, the _✓s_✓e_✓t_✓l_✓o_✓c_✓a_✓l_✓e C library func-
  2092.        tion will be called  to  determine  appropriate  character
  2093.        classification  and sorting - this function will typically
  2094.        examine the LANG and LC_CTYPE variables for  this  purpose
  2095.        (refer  to  the system documentation for further details).
  2096.        Otherwise, NLS will be simulated, by assuming that the ISO
  2097.        8859-1  character  set is used whenever either of the LANG
  2098.        and LC_CTYPE variables are set, regardless of  their  val-
  2099.        ues. Sorting is not affected for the simulated NLS.
  2100.  
  2101.        In  addition, with both real and simulated NLS, all print-
  2102.        able characters in the range \200-\377,  i.e.  those  that
  2103.        have M-<char> bindings, are automatically rebound to _✓s_✓e_✓l_✓f_✓-
  2104.        _✓i_✓n_✓s_✓e_✓r_✓t_✓-_✓c_✓o_✓m_✓m_✓a_✓n_✓d  (the   corresponding   binding   for   the
  2105.        escape+<char>  sequence,  if  any,  is  left alone).  This
  2106.        automatic  rebinding  is   inhibited   if   the   NOREBIND
  2107.  
  2108.  
  2109.  
  2110. Cornell 6.03.00          20 November 1992                      32
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116. TCSH(1)                                                   TCSH(1)
  2117.  
  2118.  
  2119.        environment  variable  is set - this may be useful for the
  2120.        simulated NLS, or a primitive real NLS which assumes  full
  2121.        ISO  8859-1  (otherwise all M-<char> bindings in the range
  2122.        \240-\377 will effectively  be  undone  in  these  cases).
  2123.        Explicitly  rebinding the relevant keys, using _✓b_✓i_✓n_✓d_✓k_✓e_✓y_✓, is
  2124.        of course still possible.
  2125.  
  2126.        Unknown characters (i.e. those that are neither  printable
  2127.        nor  control  characters)  will  be printed using the \nnn
  2128.        format.  If the tty is not in 8  bit  mode,  other  8  bit
  2129.        characters will be printed by converting them to ascii and
  2130.        using standout mode.  _✓T_✓c_✓s_✓h will never change the  7/8  bit
  2131.        mode  of  the  tty, and will track user-initiated settings
  2132.        for this - i.e. it may be necessary for NLS users (or, for
  2133.        that matter, those that want to use a Meta key) to explic-
  2134.        itly set the tty in 8 bit  mode  through  the  appropriate
  2135.        _✓s_✓t_✓t_✓y(1) command in e.g. the .login file.
  2136.  
  2137.  
  2138. 2✓27✓7.✓. A✓AU✓UT✓TO✓OM✓MA✓AT✓TI✓IC✓C P✓PR✓RO✓OC✓CE✓ES✓SS✓S T✓TI✓IM✓ME✓E R✓RE✓EP✓PO✓OR✓RT✓TI✓IN✓NG✓G
  2139.        Automatic  process time reporting is a feature that exists
  2140.        in _✓c_✓s_✓h_✓, but it is usually not documented. In addition _✓t_✓c_✓s_✓h
  2141.        provides  a slightly enriched syntax. Process time reports
  2142.        are controlled via the _✓t_✓i_✓m_✓e  shell  variable.   The  first
  2143.        word  of the _✓t_✓i_✓m_✓e variable indicates the minimum number of
  2144.        CPU seconds the process  has  to  consume  before  a  time
  2145.        report  is produced. The optional second word controls the
  2146.        format of the report.  The following sequences are  avail-
  2147.        able for the format specification:
  2148.  
  2149.              %U          The time the process spent in user mode
  2150.                          in cpu seconds.
  2151.              %S          The time the process spent in kernel mode
  2152.                          in cpu seconds.
  2153.              %E          The elapsed time in seconds.
  2154.              %P          The CPU percentage computed as (%U + %S) / %E.
  2155.  
  2156.        The following sequences are supported only in systems that
  2157.        have the BSD resource limit functions.
  2158.  
  2159.              %W          Number of times the process was swapped.
  2160.              %X          The average amount in (shared) text space used
  2161.                          in Kbytes.
  2162.              %D          The average amount in (unshared) data/stack
  2163.                          space used in Kbytes.
  2164.              %K          The total space used (%X + %D) in Kbytes.
  2165.              %M          The maximum memory the process had in use at
  2166.                          any time in Kbytes.
  2167.              %F          The number of major page faults (page needed to
  2168.                          be brought from disk).
  2169.              %R          The number of minor page faults.
  2170.              %I          The number of input operations.
  2171.              %O          The number of output operations.
  2172.              %r          The number of socket messages received.
  2173.  
  2174.  
  2175.  
  2176. Cornell 6.03.00          20 November 1992                      33
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182. TCSH(1)                                                   TCSH(1)
  2183.  
  2184.  
  2185.              %s          The number of socket messages sent.
  2186.              %k          The number of signals received.
  2187.              %w          Number of voluntary context switches (waits).
  2188.              %c          Number of involuntary context switches.
  2189.  
  2190.        The default time format is "%Uu %Ss %E %P  %X+%Dk  %I+%Oio
  2191.        %Fpf+%Ww"  for systems that support resource usage report-
  2192.        ing and "%Uu %Ss %E %P" for systems that do not.
  2193.  
  2194.        For Sequent's DYNIX/ptx %X, %D, %K, %r and %s are not sup-
  2195.        ported.   However,  the following additional sequences are
  2196.        available.
  2197.  
  2198.              %Y          The number of system calls performed.
  2199.              %Z          The number of pages which are zero-filled
  2200.                          on demand.
  2201.              %i          The number of times a process' resident
  2202.                          set size was increased by the kernel.
  2203.              %d          The number of times a process' resident
  2204.                          set size was decreased by the kernel.
  2205.              %l          The number of read system calls performed.
  2206.              %m          The number of write system calls performed.
  2207.              %p          the number of reads from raw disk devices.
  2208.              %q          the number of writes to raw disk devices.
  2209.  
  2210.        The default time format for Sequent's  DYNIX/ptx  is  "%Uu
  2211.        %Ss  $E  %P %I+%Oio %Fpf+%Ww". Also note that the CPU per-
  2212.        centage can be higher than 100% on multi-processors.
  2213.  
  2214.  
  2215. 2✓28✓8.✓. O✓OS✓S/✓/D✓DE✓EP✓PE✓EN✓ND✓DE✓EN✓NT✓T B✓BU✓UI✓IL✓LT✓TI✓IN✓N S✓SU✓UP✓PP✓PO✓OR✓RT✓T
  2216.        _✓T_✓R_✓A_✓N_✓S_✓P_✓A_✓R_✓E_✓N_✓T _✓C_✓O_✓M_✓P_✓U_✓T_✓I_✓N_✓G _✓F_✓A_✓C_✓I_✓L_✓I_✓T_✓Y
  2217.  
  2218.        On systems that support TCF (aix-ibm370, aix-ps2) the fol-
  2219.        lowing builtins have been added:
  2220.  
  2221.        g✓ge✓et✓ts✓sp✓pa✓at✓th✓h  Print the current system execution path.
  2222.  
  2223.        s✓se✓et✓ts✓sp✓pa✓at✓th✓h L✓LO✓OC✓CA✓AL✓L|✓|<✓<s✓si✓it✓te✓e>✓>|✓|<✓<c✓cp✓pu✓u>✓> .✓..✓..✓.
  2224.                  Set the current execution path.
  2225.  
  2226.  
  2227.        g✓ge✓et✓tx✓xv✓ve✓er✓rs✓s  Print the current experimental version prefix.
  2228.  
  2229.  
  2230.        s✓se✓et✓tx✓xv✓ve✓er✓rs✓s [✓[<✓<s✓st✓tr✓ri✓in✓ng✓g>✓>]✓]
  2231.                  If  the  optional string is ommited, any experi-
  2232.                  mental version prefix is removed.  Otherwise the
  2233.                  experimental version prefix is set to string.
  2234.  
  2235.  
  2236.        m✓mi✓ig✓gr✓ra✓at✓te✓e [✓[-✓-<✓<s✓si✓it✓te✓e>✓>]✓] <✓<p✓pi✓id✓d>✓>|✓|%✓%<✓<j✓jo✓ob✓bi✓id✓d>✓> .✓..✓..✓.
  2237.        m✓mi✓ig✓gr✓ra✓at✓te✓e -✓-<✓<s✓si✓it✓te✓e>✓>
  2238.                  The  first  form  migrates the process or job to
  2239.  
  2240.  
  2241.  
  2242. Cornell 6.03.00          20 November 1992                      34
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248. TCSH(1)                                                   TCSH(1)
  2249.  
  2250.  
  2251.                  the site specified or the  default  site  deter-
  2252.                  mined  by  the system path.  The second form, is
  2253.                  equivalent  to  'migrate   -<site>   $$',   i.e.
  2254.                  migrates  the current process to the site speci-
  2255.                  fied. Note:  migrating  _✓t_✓c_✓s_✓h  itself  can  cause
  2256.                  unexpected  behavior,  since  the shell does not
  2257.                  like to lose its tty.
  2258.  
  2259.  
  2260.        In addition, jobs will print the site the job  is  execut-
  2261.        ing.
  2262.  
  2263.  
  2264.        _✓D_✓o_✓m_✓a_✓i_✓n_✓/_✓O_✓S _✓S_✓u_✓p_✓p_✓o_✓r_✓t
  2265.  
  2266.  
  2267.        i✓in✓nl✓li✓ib✓b <✓<s✓sh✓ha✓ar✓re✓ed✓d-✓-l✓li✓ib✓br✓ra✓ar✓ry✓y>✓> .✓..✓..✓.
  2268.               Inlib adds shared libraries to the current environ-
  2269.               ment. There is no way to remove them...
  2270.  
  2271.        r✓ro✓oo✓ot✓tn✓no✓od✓de✓e /✓//✓/<✓<n✓no✓od✓de✓en✓na✓am✓me✓e>✓>
  2272.               Change the name of the current rootnode.  From  now
  2273.               on, _✓/ will resolve to _✓/_✓/_✓<_✓r_✓o_✓o_✓t_✓n_✓o_✓d_✓e_✓>
  2274.  
  2275.        v✓ve✓er✓r [✓[<✓<s✓sy✓ys✓st✓ty✓yp✓pe✓e>✓>]✓] [✓[<✓<c✓co✓om✓mm✓ma✓an✓nd✓d>✓>]✓]
  2276.               Without   arguments,   print   _✓$_✓S_✓Y_✓S_✓T_✓Y_✓P_✓E_✓;  with  the
  2277.               _✓<_✓s_✓y_✓s_✓t_✓y_✓p_✓e_✓> provided, set _✓S_✓Y_✓S_✓T_✓Y_✓P_✓E  to  the  one  pro-
  2278.               vided.  Valid  systypes are bsd4.3 and sys5.3. If a
  2279.               _✓<_✓c_✓o_✓m_✓m_✓a_✓n_✓d_✓> is argument is given, then  _✓<_✓c_✓o_✓m_✓m_✓a_✓n_✓d_✓>  is
  2280.               executed under the _✓<_✓s_✓y_✓s_✓t_✓y_✓p_✓e_✓> specified.
  2281.  
  2282.  
  2283.        _✓M_✓a_✓c_✓h
  2284.  
  2285.  
  2286.        s✓se✓et✓tp✓pa✓at✓th✓h <✓<p✓pa✓at✓th✓h-✓-s✓sp✓pe✓ec✓c>✓> .✓..✓..✓.
  2287.               XXX: What does it do?
  2288.  
  2289.  
  2290.        _✓M_✓a_✓s_✓s_✓c_✓o_✓m_✓p_✓/_✓R_✓T_✓U
  2291.  
  2292.  
  2293.        u✓un✓ni✓iv✓ve✓er✓rs✓se✓e <✓<u✓un✓ni✓iv✓ve✓er✓rs✓se✓e-✓-s✓sp✓pe✓ec✓c>✓> .✓..✓..✓.
  2294.               Sets  the current universe to the specified parame-
  2295.               ter.
  2296.  
  2297.  
  2298.        _✓C_✓o_✓n_✓v_✓e_✓x_✓/_✓O_✓S
  2299.  
  2300.  
  2301.        w✓wa✓ar✓rp✓p [✓[<✓<u✓un✓ni✓iv✓ve✓er✓rs✓se✓e-✓-s✓sp✓pe✓ec✓c>✓>]✓] .✓..✓..✓.
  2302.               Without arguments prints the current value  of  the
  2303.               universe. With a universe argument it sets the cur-
  2304.               rent universe to the value of the argument.
  2305.  
  2306.  
  2307.  
  2308. Cornell 6.03.00          20 November 1992                      35
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314. TCSH(1)                                                   TCSH(1)
  2315.  
  2316.  
  2317. 2✓29✓9.✓. W✓WI✓IN✓ND✓DO✓OW✓W S✓SI✓IZ✓ZE✓E T✓TR✓RA✓AC✓CK✓KI✓IN✓NG✓G
  2318.        On systems that support SIGWINCH or SIGWINDOW, _✓t_✓c_✓s_✓h adapts
  2319.        to  window resizing automatically and adjusts the environ-
  2320.        ment variables LINES and COLUMNS if set. Also if the envi-
  2321.        ronment  variable  TERMCAP  contains  li#, and co# fields,
  2322.        these will be adjusted also  to  reflect  the  new  window
  2323.        size.
  2324.  
  2325.  
  2326. 3✓30✓0.✓. I✓IN✓NP✓PU✓UT✓T F✓FI✓IL✓LE✓ES✓S
  2327.        On startup _✓t_✓c_✓s_✓h will try to source _✓/_✓e_✓t_✓c_✓/_✓c_✓s_✓h_✓._✓c_✓s_✓h_✓r_✓c and then
  2328.        _✓/_✓e_✓t_✓c_✓/_✓c_✓s_✓h_✓._✓l_✓o_✓g_✓i_✓n if the shell is a login shell. Then it will
  2329.        try  to  source  _✓$_✓H_✓O_✓M_✓E_✓/_✓._✓t_✓c_✓s_✓h_✓r_✓c  and  then  _✓$_✓H_✓O_✓M_✓E_✓/_✓._✓c_✓s_✓h_✓r_✓c if
  2330.        _✓$_✓H_✓O_✓M_✓E_✓/_✓._✓t_✓c_✓s_✓h_✓r_✓c  is  not  found.   Then   it   will   source
  2331.        _✓$_✓H_✓O_✓M_✓E_✓/_✓._✓l_✓o_✓g_✓i_✓n  if the shell is a login shell.  On exit _✓t_✓c_✓s_✓h
  2332.        will source first _✓/_✓e_✓t_✓c_✓/_✓c_✓s_✓h_✓._✓l_✓o_✓g_✓o_✓u_✓t and  then  _✓$_✓H_✓O_✓M_✓E_✓/_✓._✓l_✓o_✓g_✓o_✓u_✓t
  2333.        if the shell was a login shell.
  2334.  
  2335.        Note: On _✓c_✓o_✓n_✓v_✓e_✓x_✓o_✓s_✓, _✓s_✓t_✓e_✓l_✓l_✓i_✓x and _✓I_✓N_✓T_✓E_✓L the names of the sys-
  2336.        tem  default  files  are  _✓/_✓e_✓t_✓c_✓/_✓c_✓s_✓h_✓r_✓c  _✓,   _✓/_✓e_✓t_✓c_✓/_✓l_✓o_✓g_✓i_✓n   and
  2337.        _✓/_✓e_✓t_✓c_✓/_✓l_✓o_✓g_✓o_✓u_✓t  respectively.  On the NeXT the names are also
  2338.        different:    _✓/_✓e_✓t_✓c_✓/_✓c_✓s_✓h_✓r_✓c_✓._✓s_✓t_✓d    _✓,    _✓/_✓e_✓t_✓c_✓/_✓l_✓o_✓g_✓i_✓n_✓._✓s_✓t_✓d    and
  2339.        _✓/_✓e_✓t_✓c_✓/_✓l_✓o_✓g_✓o_✓u_✓t_✓._✓s_✓t_✓d  Finally on _✓i_✓r_✓i_✓x_✓, _✓A_✓/_✓U_✓X_✓, _✓A_✓M_✓I_✓X_✓, and the _✓c_✓r_✓a_✓y
  2340.        only the file _✓/_✓e_✓t_✓c_✓/_✓c_✓s_✓h_✓r_✓c is executed if  the  shell  is  a
  2341.        login shell.
  2342.  
  2343.  
  2344. 3✓31✓1.✓. C✓CO✓OM✓MM✓MA✓AN✓ND✓D L✓LI✓IN✓NE✓E O✓OP✓PT✓TI✓IO✓ON✓NS✓S
  2345.        This  section  describes  options  that are either undocu-
  2346.        mented in _✓c_✓s_✓h (*) or present only in _✓t_✓c_✓s_✓h_✓.  (+)
  2347.  
  2348.  
  2349.        _✓-_✓d  Force load of directory stack. (+)
  2350.  
  2351.        _✓-_✓D_✓n_✓a_✓m_✓e_✓[_✓=_✓v_✓a_✓l_✓u_✓e_✓]
  2352.            Set environment variable  name  to  value.  (Domain/OS
  2353.            only) (+)
  2354.  
  2355.        _✓-_✓F  Use  fork()  instead  of  vfork()  to spawn processes.
  2356.            (Convex/OS only) (+)
  2357.  
  2358.        _✓-_✓l  Make _✓t_✓c_✓s_✓h behave like a login shell.  (+)
  2359.  
  2360.        _✓-_✓m  Allow reading of a .cshrc that does not belong to  the
  2361.            effective  user. Newer versions of _✓s_✓u_✓(_✓1_✓) can pass that
  2362.            to the shell. (some versions of csh have it) (+*)
  2363.  
  2364.        _✓-_✓q  Make the shell accept SIGQUIT, and behave when  it  is
  2365.            used under a debugger.  Job control is disabled. (*)
  2366.  
  2367.  
  2368. 3✓32✓2.✓. H✓HI✓IS✓ST✓TO✓OR✓RY✓Y A✓AN✓ND✓D V✓VA✓AR✓RI✓IA✓AB✓BL✓LE✓E M✓MO✓OD✓DI✓IF✓FI✓IE✓ER✓R E✓EN✓NH✓HA✓AN✓NC✓CE✓EM✓ME✓EN✓NT✓TS✓S
  2369.        _✓T_✓c_✓s_✓h  accepts more than one variable modifier per variable
  2370.        or  history  expansion.   For  example,  in   _✓c_✓s_✓h_✓(_✓1_✓)   the
  2371.  
  2372.  
  2373.  
  2374. Cornell 6.03.00          20 November 1992                      36
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380. TCSH(1)                                                   TCSH(1)
  2381.  
  2382.  
  2383.        following command expands to:
  2384.  
  2385.              % set a=/usr/local/foo.bar.baz
  2386.              % echo $a:t:r:e
  2387.              foo.bar.baz:r:e
  2388.  
  2389.        but in _✓t_✓c_✓s_✓h_✓:
  2390.  
  2391.              > set a=/usr/local/foo.bar.baz
  2392.              > echo $a:t:r:e
  2393.              bar
  2394.  
  2395.        This  bug  fix  changes  slightly the input syntax of _✓c_✓s_✓h_✓,
  2396.        causing expressions of the form to have invalid syntax:
  2397.  
  2398.              > set a=/usr/local/foo.bar.baz
  2399.              > echo $a:t:$cwd
  2400.              Unknown variable modifier.
  2401.  
  2402.        Which is the correct  behavior,  since  after  the  second
  2403.        colon  a  variable  modifier is expected and `$' is found.
  2404.        Expressions like this should be re-written as:
  2405.  
  2406.              > echo ${a:t}:$cwd
  2407.  
  2408.        _✓T_✓c_✓s_✓h can also use the _✓l and _✓u modifiers to change the case
  2409.        of a word.
  2410.  
  2411.        Also  _✓t_✓c_✓s_✓h  has  an additional : character _✓a which applies
  2412.        the current modifier multiple times in the same  word,  in
  2413.        the same way _✓g applies the modifier once in each word:
  2414.  
  2415.              > set foo=(a:b:c d:e:f)
  2416.              > echo $foo:s/:/ /
  2417.              a b:c d:e:f
  2418.              > echo $foo:gs/:/ /
  2419.              a b:c d e:f
  2420.              > echo $foo:as/:/ /
  2421.              a b c d:e:f
  2422.              > echo $foo:ags/:/ /
  2423.              a b c d e f
  2424.  
  2425.        The  _✓c_✓s_✓h  expert  will notice in the above example another
  2426.        _✓t_✓c_✓s_✓h enhancement. In _✓c_✓s_✓h the _✓s modifier does not work  for
  2427.        variables.
  2428.  
  2429.        The  _✓a character works correctly with other modifiers, for
  2430.        example:
  2431.  
  2432.              > echo $host
  2433.              tesla.ee.cornell.edu
  2434.              > echo $host:r
  2435.              tesla.ee.cornell
  2436.              > echo $host:ar
  2437.  
  2438.  
  2439.  
  2440. Cornell 6.03.00          20 November 1992                      37
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446. TCSH(1)                                                   TCSH(1)
  2447.  
  2448.  
  2449.              tesla
  2450.  
  2451.        _✓N_✓o_✓t_✓e_✓: The _✓a character causes a modifier to be applied to a
  2452.        word repeatedly until the modifier fails. This can lead to
  2453.        an infinite loop in the current implementation  when  used
  2454.        with the _✓s modifier. For example :as/f/ff/ will never ter-
  2455.        minate. This behavior might change in the future.
  2456.  
  2457.  
  2458. 3✓33✓3.✓. P✓PR✓RO✓OG✓GR✓RA✓AM✓MM✓MA✓AB✓BL✓LE✓E C✓CO✓OM✓MP✓PL✓LE✓ET✓TI✓IO✓ON✓N
  2459.        The new _✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓e and _✓u_✓n_✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓e builtins  can  change  the
  2460.        behavior  of  the listing and file-completion in tcsh. For
  2461.        example some commands like _✓c_✓d_✓,  _✓p_✓u_✓s_✓h_✓d_✓,  _✓p_✓o_✓p_✓d  _✓,  _✓m_✓k_✓d_✓i_✓r_✓(_✓1_✓)_✓,
  2462.        _✓r_✓m_✓d_✓i_✓r_✓(_✓1_✓)  accept  only directories as arguments.  Normally
  2463.        _✓t_✓c_✓s_✓h when asked to list or complete an argument for  those
  2464.        commands  takes  into  account  all the files and not only
  2465.        directories. This behavior can be changed by telling  _✓t_✓c_✓s_✓h
  2466.        that these commands only expect directory arguments:
  2467.  
  2468.        > complete cd 'n/*/d/'
  2469.  
  2470.        The  above  command  tells  _✓t_✓c_✓s_✓h to complete any following
  2471.        word with a directory.
  2472.  
  2473.        The syntax for the _✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓e and _✓u_✓n_✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓e builtins is:
  2474.  
  2475.        _✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓e _✓[_✓<_✓c_✓o_✓m_✓m_✓a_✓n_✓d_✓-_✓p_✓a_✓t_✓t_✓e_✓r_✓n_✓> _✓[_✓<_✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓i_✓o_✓n_✓-_✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t_✓>_✓]_✓]
  2476.        _✓u_✓n_✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓e _✓<_✓c_✓o_✓m_✓m_✓a_✓n_✓d_✓-_✓p_✓a_✓t_✓t_✓e_✓r_✓n_✓>
  2477.  
  2478.        Completion arguments are matched  in  turn  from  left  to
  2479.        right  and  the first successful match is returned.  There
  2480.        are three different completion  arguments,  modeled  after
  2481.        the _✓s_✓e_✓d_✓(_✓1_✓) substitute command and they are of the form:
  2482.  
  2483.        <✓<c✓co✓om✓mm✓ma✓an✓nd✓d>✓>/✓/<✓<m✓ma✓at✓tc✓ch✓h-✓-p✓pa✓at✓tt✓te✓er✓rn✓n>✓>/✓/<✓<c✓co✓om✓mp✓pl✓le✓et✓te✓e-✓-a✓ac✓ct✓ti✓io✓on✓n>✓>/✓/[✓[<✓<s✓su✓uf✓ff✓fi✓ix✓x>✓>|✓|/✓/]✓]
  2484.  
  2485.        The five commands available are:
  2486.  
  2487.        p✓p      This  specifies  position-dependent completion. The
  2488.               matching pattern is a numeric range similar to  the
  2489.               one  used to index shell variables.  If the current
  2490.               word is within  that  range,  then  the  completion
  2491.               action is taken. For example:
  2492.  
  2493.               > complete cd 'p/1/d/'
  2494.  
  2495.               completes  only  the  first argument of 'cd' with a
  2496.               directory.  A  special  useful  case  of  position-
  2497.               dependent  completion  can  be used to disambiguate
  2498.               command completion:
  2499.  
  2500.               > set autolist
  2501.               > co[TAB]
  2502.               complete compress
  2503.  
  2504.  
  2505.  
  2506. Cornell 6.03.00          20 November 1992                      38
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512. TCSH(1)                                                   TCSH(1)
  2513.  
  2514.  
  2515.               > complete -co* 'p/0/(complete)/'
  2516.               > co[TAB]
  2517.               > complete _
  2518.  
  2519.               The above command tells the completion mechanism to
  2520.               match any word on position 0, that matches the pat-
  2521.               tern _✓c_✓o_✓* _✓.  If  a  match  is  found,  the  word  is
  2522.               replaced  with  the literal pattern "complete". The
  2523.               leading '-' in the pattern signifies that this com-
  2524.               pletion is to be used only with ambiguous commands.
  2525.  
  2526.        n✓n,✓,N✓N    This command specifies next-word  completions.  The
  2527.               matching  pattern  in  this case is a shell pattern
  2528.               that must match the previous word  on  the  command
  2529.               line  _✓(_✓n_✓)_✓,  or the word before that _✓(_✓N_✓)_✓.  For exam-
  2530.               ple:
  2531.  
  2532.               > complete find 'n/-user/u/'
  2533.  
  2534.               Here the argument of the find command which follows
  2535.               the  -user  argument  is completed from the list of
  2536.               users.
  2537.  
  2538.        c✓c,✓,C✓C    The last two completion commands complete the  cur-
  2539.               rent  word.  The matching pattern in this case must
  2540.               match the prefix of the current word. For example:
  2541.  
  2542.               > complete cc 'c/-I/d/'
  2543.  
  2544.               completes the the word containing -I from the  list
  2545.               of  directories.   While  `✓`c✓c'✓'  discards the matched
  2546.               prefix, `✓`C✓C'✓' keeps it  and  applies  the  completion
  2547.               using it.
  2548.  
  2549.  
  2550.        So  far the _✓d_✓, _✓u_✓, _✓(_✓w_✓o_✓r_✓d_✓) completion actions have been men-
  2551.        tioned. The complete list of completion actions are:
  2552.  
  2553.              C           Complete completions
  2554.              S           Complete signals
  2555.              a           Complete aliases
  2556.              b           Complete binding
  2557.              c           Complete command
  2558.              d           Complete directory
  2559.              e           Complete environment variable
  2560.              f           Complete file or path component
  2561.              j           Complete jobs
  2562.              l           Complete limits
  2563.              n           Complete nothing
  2564.              p           Complete files using the supplied pathname prefix
  2565.              s           Complete shell variable
  2566.              t           Complete non directory `text' filename
  2567.              v           Complete any variable
  2568.              u           Complete username
  2569.  
  2570.  
  2571.  
  2572. Cornell 6.03.00          20 November 1992                      39
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578. TCSH(1)                                                   TCSH(1)
  2579.  
  2580.  
  2581.              x           Explain what argument when listing is requested.
  2582.              $var        Complete using words from variable
  2583.              (...)       Complete using words from list
  2584.              `...`       Complete evaluating word list from the output of command.
  2585.  
  2586.        All the above completion actions, except _✓x_✓,  _✓$_✓v_✓a_✓r_✓,  _✓(_✓._✓._✓._✓)_✓,
  2587.        and  _✓`_✓._✓._✓._✓` can have an additional shell pattern which must
  2588.        match the files to be completed, separated from the action
  2589.        with  a ':'. The _✓'_✓x_✓' completion action instead expects the
  2590.        explanation string specified this way.   For  example,  in
  2591.        the C compiler, it makes sense to complete only files that
  2592.        the compiler understands:
  2593.  
  2594.        > complete cc 'n/*/f:*.[cao]/'
  2595.  
  2596.        It is also useful to exclude  files  from  the  completion
  2597.        list. Normally _✓t_✓c_✓s_✓h will expand the following command:
  2598.  
  2599.        > set fignore=(.o)
  2600.        > ls
  2601.        foo.c foo.o
  2602.        > vi f[TAB]
  2603.        > vi foo.c
  2604.        > rm f[TAB]
  2605.        > rm foo.c
  2606.  
  2607.        A  better way to do this is to use the _✓c_✓o_✓m_✓p_✓l_✓e_✓t_✓e builtin to
  2608.        protect precious files:
  2609.  
  2610.        > complete rm 'n/*/f:^*.{c,h,cc,C,tex,1,man,l,y}/'
  2611.        > ls
  2612.        foo.c foo.o
  2613.        > vi f[TAB]
  2614.        > vi foo.c
  2615.        > rm f[TAB]
  2616.        > rm foo.o
  2617.  
  2618.        Note that _✓f_✓i_✓g_✓n_✓o_✓r_✓e is not used  when  a  shell  pattern  is
  2619.        specified in a completion action.
  2620.  
  2621.        Other  commands  don't  expect  files as arguments, so the
  2622.        completion builtin can be used to change the list of items
  2623.        to be completed:
  2624.  
  2625.          > complete man      'n/*/c/'            # complete commands
  2626.          > complete which    'n/*/c/'
  2627.          > complete dbx      'p/2/(core)/' 'n/*/c/'
  2628.          > complete alias    'p/1/a/'            # complete aliases
  2629.          > complete set      'p/1/s/'            # complete variables
  2630.          > complete finger   'p/1/u/'            # complete user-names
  2631.  
  2632.        Note that in the _✓d_✓b_✓x example, the positional completion is
  2633.        specified before the next word completion.  Since  comple-
  2634.        tions  are  evaluated from left to right, if the next word
  2635.  
  2636.  
  2637.  
  2638. Cornell 6.03.00          20 November 1992                      40
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. TCSH(1)                                                   TCSH(1)
  2645.  
  2646.  
  2647.        completion was specified first it would always  match  and
  2648.        the positional completion would never be executed. This is
  2649.        a common mistake when defining a completion.
  2650.  
  2651.        In some cases the list needs to be customized  or  dynami-
  2652.        cally generated.
  2653.  
  2654.        > set hostnames=(prep.ai.mit.edu tesla.ee.cornell.edu)
  2655.        > complete rlogin 'p/1/$hostnames/'
  2656.  
  2657.        Consider  a  complex  example  using  matching patterns to
  2658.        direct argument dependent completions:
  2659.        > complete find 'n/-fstype/(nfs 4.2)/' 'n/-name/f/' \
  2660.                        'n/-type/(c b d f p l s)/' 'n/-user/u/' 'n/-exec/c/' \
  2661.                        'n/-ok/c/' 'n/-cpio/f/' 'n/-ncpio/f/' 'n/-newer/f/' \
  2662.                        'c/-/(fstype name perm prune type user nouser \
  2663.                              group nogroup size inum atime mtime ctime exec \
  2664.                              ok print ls cpio ncpio newer xdev depth)/' \
  2665.                        'n/*/d/'
  2666.  
  2667.  
  2668.        The words following the _✓-_✓f_✓s_✓t_✓y_✓p_✓e and _✓-_✓t_✓y_✓p_✓e arguments is  to
  2669.        be completed from the lists specified.  The word following
  2670.        the _✓-_✓n_✓a_✓m_✓e_✓, _✓-_✓c_✓p_✓i_✓o_✓, _✓-_✓n_✓c_✓p_✓i_✓o_✓, and _✓-_✓n_✓e_✓w_✓e_✓r arguments are  to  be
  2671.        completed  using  files or directory components.  The word
  2672.        following the _✓-_✓u_✓s_✓e_✓r argument will be  completed  from  the
  2673.        list  of  user names of the system, and the word following
  2674.        the _✓-_✓e_✓x_✓e_✓c and _✓-_✓o_✓k arguments will  be  completed  from  the
  2675.        list  of commands.  The fourth line specifies how the cur-
  2676.        rent word will be completed if it starts with a  _✓-_✓.   Note
  2677.        that the pattern of this completion argument refers to the
  2678.        _✓c_✓u_✓r_✓r_✓e_✓n_✓t word and not to the _✓p_✓r_✓e_✓v_✓i_✓o_✓u_✓s  word,  like  before.
  2679.        Finally  the  last line in the find completion matches all
  2680.        the remaining cases and requires a directory component.
  2681.  
  2682.        > cd /usr
  2683.        > set autolist
  2684.        > find [TAB]
  2685.        bin/ include/ lib/ local/ man/ src/
  2686.        > find -[TAB]
  2687.        atime   depth   group   mtime   newer   ok      prune   user
  2688.        cpio    exec    inum    name    nogroup perm    size    xdev
  2689.        ctime   fstype  ls      ncpio   nouser  print   type
  2690.        > find -u[TAB]
  2691.        > find -user [TAB]
  2692.        christos root
  2693.        > find -user c[TAB]
  2694.        > find -user christos
  2695.  
  2696.        Another useful feature is to override the  default  suffix
  2697.        rules.  For example:
  2698.  
  2699.        > complete rcp 'c/*:/f/' 'p/1/$hosts/:'
  2700.        > complete finger 'c/*@/$hosts/' 'p/1/u/@'
  2701.  
  2702.  
  2703.  
  2704. Cornell 6.03.00          20 November 1992                      41
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710. TCSH(1)                                                   TCSH(1)
  2711.  
  2712.  
  2713.        completes  from  $hosts  appending  a  `:' and then begins
  2714.        expanding files, where finger expands user-names appending
  2715.        an `@' and then begins expanding hosts.
  2716.  
  2717.        Another  exotic  example that makes use of dynamic command
  2718.        execution is:
  2719.  
  2720.        > complete talk p/1/'`users | tr " " "\012" | uniq`'/ \
  2721.                   n/\*/\`who\ \|\ grep\ \$:1\ \|\ awk\ \'\{\ print\ \$2\ \}\'\`/
  2722.  
  2723.        Here we want to get a list of  the  active  users,  as  an
  2724.        argument  to talk, then we want to pick the user, and find
  2725.        his tty...  Note that there is no quoting performed inside
  2726.        the  completion patterns.  If the character '/' is used in
  2727.        the matched pattern, then  another  punctuation  character
  2728.        can be used as a separator. The only pattern recognized is
  2729.        $✓$:✓:<✓<n✓nu✓um✓mb✓be✓er✓r>✓> which is substituted by the n'th  word  of  the
  2730.        current line.
  2731.  
  2732.        Notes:
  2733.  
  2734.        1.     The completion command-patterns are overridden when
  2735.               the internal parsing mechanism determines that  the
  2736.               completion is a login name, or a variable.
  2737.  
  2738.        2.     This  is  an  experimental  feature  and  the  syn-
  2739.               tax/behavior may change in future versions.
  2740.  
  2741.  
  2742. F✓FY✓YI✓I
  2743.        This shell uses CBREAK mode but takes typed-ahead  charac-
  2744.        ters anyway.  You can still use _✓s_✓t_✓t_✓y(1) to set some of the
  2745.        modes of your terminal (but not bindings).
  2746.  
  2747.        This shell will restore your tty to  a  sane  mode  if  it
  2748.        appears  to  return  from  some command in raw, CBREAK, or
  2749.        noecho mode. This behavior can be changed using _✓s_✓e_✓t_✓t_✓y_✓.
  2750.  
  2751.  
  2752. E✓EN✓NH✓HA✓AN✓NC✓CE✓ED✓D F✓FI✓IL✓LE✓E I✓IN✓NQ✓QU✓UI✓IR✓RI✓IE✓ES✓S
  2753.        _✓C_✓s_✓h allows the following file inquiries that can appear as
  2754.        primitive  operands  in expressions. They are for the form
  2755.        _✓-_✓l _✓<_✓f_✓i_✓l_✓e_✓n_✓a_✓m_✓e_✓>_✓.
  2756.  
  2757.              r           read access
  2758.              w           write access
  2759.              x           execute access
  2760.              e           existence
  2761.              o           ownership
  2762.              z           zero size
  2763.              f           plain file
  2764.              d           directory
  2765.              l           symbolic link *
  2766.  
  2767.  
  2768.  
  2769.  
  2770. Cornell 6.03.00          20 November 1992                      42
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776. TCSH(1)                                                   TCSH(1)
  2777.  
  2778.  
  2779.        _✓T_✓c_✓s_✓h defines also the following:
  2780.  
  2781.              c           character special file
  2782.              b           block special file
  2783.              p           named pipe (fifo) *
  2784.              u           set-user-ID bit is set
  2785.              g           set-group-ID bit is set
  2786.              k           sticky bit is set
  2787.              s           socket special file *
  2788.              t           open file descriptor for terminal device [a number]
  2789.              X           executable in the path or shell builtin
  2790.  
  2791.  
  2792.        Notes: On systems without the file types  indicated  by  _✓*
  2793.        the  file inquiry operands return false. In the version of
  2794.        _✓c_✓s_✓h appearing on the Silicon Graphics  IRIX,  -s  is  true
  2795.        when  the file is not zero size.  _✓T_✓c_✓s_✓h is *not* compatible
  2796.        with that.
  2797.  
  2798.  
  2799.  
  2800. E✓EN✓NV✓VI✓IR✓RO✓ON✓NM✓ME✓EN✓NT✓T
  2801.        HPATH -- path to look for command documentation
  2802.        LANG -- used to give preferred character environment  (see
  2803.        NLS)
  2804.        LC_CTYPE  --  used to change only ctype character handling
  2805.        (see NLS)
  2806.        NOREBIND -- inhibits rebinding of printable characters  to
  2807.        self-insert-command
  2808.        PATH -- path to look for command execution
  2809.        SHLVL -- current shell level nesting
  2810.        TERM -- used to tell how to handle the terminal
  2811.        LINES -- Number of lines in terminal (see WINDOW SIZE)
  2812.        COLUMNS -- Number of columns in terminal (see WINDOW SIZE)
  2813.        TERMCAP -- Terminal capability string (see WINDOW SIZE)
  2814.        SYSTYPE -- The current system type (Domain OS only)
  2815.  
  2816.  
  2817. N✓NE✓EW✓W S✓SH✓HE✓EL✓LL✓L V✓VA✓AR✓RI✓IA✓AB✓BL✓LE✓ES✓S
  2818.        a✓ad✓dd✓ds✓su✓uf✓ff✓fi✓ix✓x add a / for directories, and a space for  normal
  2819.                  files  when complete matches a name exactly.  If
  2820.                  unset don't add anything extra.
  2821.  
  2822.        a✓am✓mp✓pm✓m      show all times in 12 hour, AM/PM format.
  2823.  
  2824.        a✓au✓ut✓to✓oc✓co✓or✓rr✓re✓ec✓ct✓t
  2825.                  Correct mis-spelled  path  components  automati-
  2826.                  cally before attempting completion.
  2827.  
  2828.        a✓au✓ut✓to✓oe✓ex✓xp✓pa✓an✓nd✓d
  2829.                  invoke the expand-history function automatically
  2830.                  on completion.
  2831.  
  2832.        a✓au✓ut✓to✓ol✓li✓is✓st✓t  list possibilities on an ambiguous completion.
  2833.  
  2834.  
  2835.  
  2836. Cornell 6.03.00          20 November 1992                      43
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842. TCSH(1)                                                   TCSH(1)
  2843.  
  2844.  
  2845.        a✓au✓ut✓to✓ol✓lo✓og✓go✓ou✓ut✓t
  2846.                  The first word indicates number  of  minutes  of
  2847.                  inactivity   before   automatic   logout.    The
  2848.                  optional second word  indicates  the  number  of
  2849.                  minutes  of inactivity after which the user will
  2850.                  be prompted for his login password  to  enter  a
  2851.                  command.
  2852.  
  2853.        b✓ba✓ac✓ck✓ks✓sl✓la✓as✓sh✓h_✓_q✓qu✓uo✓ot✓te✓e
  2854.                  makes  the  backslash  quote  \,  ', and ". This
  2855.                  option changes the parsing mechanism  for  tcsh,
  2856.                  and it can cause syntax errors in _✓c_✓s_✓h scripts.
  2857.  
  2858.        c✓co✓or✓rr✓re✓ec✓ct✓t   automatically  try  to  correct  the spelling of
  2859.                  commands.  Must be set  to  either  correct=cmd,
  2860.                  only  command  name  will  be corrected, or cor-
  2861.                  rect=all, the whole line will be corrected.
  2862.  
  2863.        d✓de✓ex✓xt✓tr✓ra✓ac✓ct✓t  extract a directory on pushd rather than  rotat-
  2864.                  ing.
  2865.  
  2866.        d✓di✓ir✓rs✓sf✓fi✓il✓le✓e  If  set,  it contains the full path-name where a
  2867.                  directory  stack  file  is   read/written.    It
  2868.                  defaults  to  $home/.cshdirs.  This file is exe-
  2869.                  cuted last after .cshrc and  .login  to  restore
  2870.                  the directory stack.
  2871.  
  2872.        d✓di✓ir✓rs✓st✓ta✓ac✓ck✓k  If set, it contains an array of all the directo-
  2873.                  ries on the directory stack. $dirstack[1] is the
  2874.                  current   working  directory,  $dirstack[2]  the
  2875.                  first  directory  on  the  stack  etc.   Setting
  2876.                  $dirstack  resets all the stack entries, but the
  2877.                  current working directory which is preserved.
  2878.  
  2879.        d✓du✓un✓ni✓iq✓qu✓ue✓e   Push only directories that are  not  already  in
  2880.                  the directory stack.
  2881.  
  2882.        e✓ec✓ch✓ho✓o_✓_s✓st✓ty✓yl✓le✓e
  2883.                  Set  the style of the builtin echo. Valid values
  2884.                  are:
  2885.  
  2886.               _✓b_✓s_✓d _✓:   if the first argument is -n, don't  echo  a
  2887.                       newline.
  2888.  
  2889.               _✓s_✓y_✓s_✓v _✓:  recognize   \   escape  sequences  in  echo
  2890.                       strings.
  2891.  
  2892.               _✓b_✓o_✓t_✓h _✓:  recognize both -n and \ escape sequences.
  2893.  
  2894.               _✓n_✓o_✓n_✓e _✓:  the purist's echo.
  2895.  
  2896.        e✓ed✓di✓it✓t      use the input editor, set by default.
  2897.  
  2898.        f✓fi✓ig✓gn✓no✓or✓re✓e   list of file  name  suffixes  (e.g.  .o,  ~)  to
  2899.  
  2900.  
  2901.  
  2902. Cornell 6.03.00          20 November 1992                      44
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908. TCSH(1)                                                   TCSH(1)
  2909.  
  2910.  
  2911.                  ignore during complete.
  2912.  
  2913.        g✓gi✓id✓d       the current real group id.
  2914.  
  2915.        h✓hi✓is✓st✓tl✓li✓it✓t   If  set,  history  lines  in  the editor will be
  2916.                  shown with its literal value (that is  the  line
  2917.                  as  it  was input) instead of the shells lexical
  2918.                  version. The current history line can be toggled
  2919.                  between  literal  and  lexical  with the toggle-
  2920.                  literal-history function.  History  lines  saved
  2921.                  at  shell  exit  are also saved as this variable
  2922.                  indicates.
  2923.  
  2924.        h✓hi✓is✓st✓tf✓fi✓il✓le✓e  If set, it contains the full path-name  where  a
  2925.                  history  file  is  read/written.  It defaults to
  2926.                  $home/.history. This is useful when sharing  the
  2927.                  same home directory in different machines, or if
  2928.                  one wants to save all the histories in  the  tty
  2929.                  sessions. It is usually set in .cshrc for inter-
  2930.                  active  shells,  because  history   is   sourced
  2931.                  between  .cshrc  and .login so that it is avail-
  2932.                  able from .login.
  2933.  
  2934.        h✓hi✓is✓st✓to✓or✓ry✓y   The first word of the history variable indicates
  2935.                  the  number  of  history events to be saved. The
  2936.                  optional second word indicates the  format  his-
  2937.                  tory is printed (Defaults to "%h\t%T\t%R\n").
  2938.  
  2939.        i✓in✓np✓pu✓ut✓tm✓mo✓od✓de✓e Can be set to either _✓i_✓n_✓s_✓e_✓r_✓t or _✓o_✓v_✓e_✓r_✓w_✓r_✓i_✓t_✓e to con-
  2940.                  trol the line editing behavior, as described  in
  2941.                  section 1.
  2942.  
  2943.        l✓li✓is✓st✓tj✓jo✓ob✓bs✓s  list    all    jobs    when    suspending.   set
  2944.                  listjobs=long, produces long format.
  2945.  
  2946.        l✓li✓is✓st✓tl✓li✓in✓nk✓ks✓s Resolve symbolic links  when  listing  files  so
  2947.                  that the correct filetype is shown.
  2948.  
  2949.        l✓li✓is✓st✓tm✓ma✓ax✓x   maximum  number  of items to list without asking
  2950.                  first.
  2951.  
  2952.        m✓ma✓at✓tc✓ch✓hb✓be✓ee✓ep✓p control  beeping  on  completion.   With  match-
  2953.                  beep=nomatch,  completion  only beeps when there
  2954.                  is no  match,  with  matchbeep=ambiguous,  beeps
  2955.                  also  when  there  are  multiple  matches,  with
  2956.                  matchbeep=notunique, beeps  when  there  is  one
  2957.                  exact  and  other  longer  matches,  with match-
  2958.                  beep=never, it never beeps.
  2959.  
  2960.        n✓no✓ob✓be✓ee✓ep✓p    Disables beeping completely.
  2961.  
  2962.        n✓no✓ok✓ka✓an✓nj✓ji✓i   If kanji support is enable, setting  this  vari-
  2963.                  able  disables  it,  so that the meta key can be
  2964.                  used.
  2965.  
  2966.  
  2967.  
  2968. Cornell 6.03.00          20 November 1992                      45
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974. TCSH(1)                                                   TCSH(1)
  2975.  
  2976.  
  2977.        n✓no✓os✓st✓ta✓at✓t    An  list  of  directories  that  should  not  be
  2978.                  stat'ed  during  a  completion  operation.  Some
  2979.                  directories e.g. "/afs", can take too much  time
  2980.                  to  complete  a  _✓s_✓t_✓a_✓t_✓(_✓2_✓)  operation, making them
  2981.                  prime candidates for membership in this list.
  2982.  
  2983.        o✓oi✓id✓d       The organization id number (Domain OS only).
  2984.  
  2985.        p✓pr✓ri✓in✓nt✓te✓ex✓xi✓it✓tv✓va✓al✓lu✓ue✓e
  2986.                  if an interactive program exits non-zero,  print
  2987.                  the exit value.
  2988.  
  2989.        p✓pr✓ro✓om✓mp✓pt✓t    the string to prompt with.
  2990.  
  2991.        p✓pr✓ro✓om✓mp✓pt✓t2✓2   the  string  to  prompt  for while and for loops
  2992.                  with.
  2993.  
  2994.        p✓pr✓ro✓om✓mp✓pt✓t3✓3   the  string  to  prompt  with   when   automatic
  2995.                  spelling  correction  has  corrected  a  command
  2996.                  line.
  2997.  
  2998.        p✓pu✓us✓sh✓hd✓dt✓to✓oh✓ho✓om✓me✓e
  2999.                  make pushd with no args do a "pushd ~" (like  cd
  3000.                  does).
  3001.  
  3002.        p✓pu✓us✓sh✓hd✓ds✓si✓il✓le✓en✓nt✓t
  3003.                  do  not  print  the dir stack on every pushd and
  3004.                  popd.
  3005.  
  3006.        r✓re✓ec✓ce✓ex✓xa✓ac✓ct✓t  recognize exact matches even if they are ambigu-
  3007.                  ous.
  3008.  
  3009.        r✓re✓ec✓co✓og✓gn✓ni✓iz✓ze✓e_✓_o✓on✓nl✓ly✓y_✓_e✓ex✓xe✓ec✓cu✓ut✓ta✓ab✓bl✓le✓es✓s
  3010.                  list  choices of commands only displays files in
  3011.                  the path that are executable (slow).
  3012.  
  3013.        r✓rm✓ms✓st✓ta✓ar✓r    Prompt the user before execution of `rm *'.
  3014.  
  3015.        s✓sa✓av✓ve✓ed✓di✓ir✓rs✓s  Before   exiting,   create   a    file    called
  3016.                  $HOME/.cshdirs  that contains the necessary com-
  3017.                  mands to restore the  current  directory  stack.
  3018.                  _✓T_✓c_✓s_✓h  will  read  this  file  during startup and
  3019.                  restore the directory stack.
  3020.  
  3021.        s✓sa✓av✓ve✓eh✓hi✓is✓st✓t  number of history items to  save  between  login
  3022.                  sessions.   If  it  is  just  set, the number of
  3023.                  items is taken from $history.
  3024.  
  3025.        s✓sh✓hl✓lv✓vl✓l     Integer value indicating the  number  of  nested
  3026.                  shells. On login shells the level is reset to 1.
  3027.  
  3028.        s✓sh✓ho✓ow✓wd✓do✓ot✓ts✓s  show hidden files in list  and  complete  opera-
  3029.                  tions. If it is set to -A, then "." and ".." are
  3030.                  not displayed, similarly to the BSD ls -A.
  3031.  
  3032.  
  3033.  
  3034. Cornell 6.03.00          20 November 1992                      46
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040. TCSH(1)                                                   TCSH(1)
  3041.  
  3042.  
  3043.        s✓sy✓ym✓ml✓li✓in✓nk✓ks✓s  can be set to: _✓c_✓h_✓a_✓s_✓e _✓, in order to  resolve  the
  3044.                  full  path  names, _✓i_✓g_✓n_✓o_✓r_✓e _✓, in order to use $cwd
  3045.                  to resolve  relative  directory  references  for
  3046.                  builtins.   _✓e_✓x_✓p_✓a_✓n_✓d  _✓,  in  order to use $cwd and
  3047.                  rewrite the arguments for commands.
  3048.  
  3049.        t✓tc✓cs✓sh✓h      Contains the current version  of  the  shell  as
  3050.                  R.VV.PP.  The _✓R indicates the major release num-
  3051.                  ber, the _✓V_✓V the current version and the  _✓P_✓P  the
  3052.                  patchlevel.
  3053.  
  3054.        t✓te✓er✓rm✓m      the terminal type; see above.
  3055.  
  3056.        t✓tp✓pe✓er✓ri✓io✓od✓d   periodic command wait period (in minutes).
  3057.  
  3058.        t✓tt✓ty✓y       The name of the tty, or empty if not attached to
  3059.                  one.
  3060.  
  3061.        u✓ui✓id✓d       the current real user ID.
  3062.  
  3063.        v✓ve✓er✓rs✓si✓io✓on✓n   the version ID stamp for  this  _✓t_✓c_✓s_✓h_✓.   It  con-
  3064.                  tains,  the  origin of this version of _✓t_✓c_✓s_✓h_✓, the
  3065.                  date this version was released and a string con-
  3066.                  taining  a  comma  separated list of the compile
  3067.                  time options enabled:
  3068.                  8b 7b  If tcsh was compiled to be eight bit clean
  3069.                         or not.  The default is 8b.
  3070.                  nls    Set if tcsh uses the system's NLS, should be
  3071.                         the default for systems that have NLS.
  3072.                  lf     Set if tcsh should execute .login before
  3073.                         .cshrc on login shells. Default is not set.
  3074.                  dl     Set if tcsh should put . last on the path
  3075.                         for security. Default is set.
  3076.                  vi     Set if tcsh's default editor is vi. Default
  3077.                         is unset (emacs)
  3078.                  dtr    Set if tcsh should drop dtr on login shells
  3079.                         when exiting.  Default is unset.
  3080.                  bye    Set if tcsh should accept bye in addition
  3081.                         to logout, and rename log to watchlog.
  3082.                         Default is unset.
  3083.                  al     Set if tcsh should determine if autologout
  3084.                         should be enabled. The default is set.
  3085.                  kan    Set if tcsh is compiled for Kanji.
  3086.                         (ignore the iso character set.) Default is unset.
  3087.                  sm     Set if tcsh was compiled to use the system's malloc.
  3088.                  hb     Set if tcsh is emulating #!<program> <args> in
  3089.                         shell script execution
  3090.  
  3091.        In addition to the above strings, administrators can enter
  3092.        local  strings  to  indicate differences in the local ver-
  3093.        sion.
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100. Cornell 6.03.00          20 November 1992                      47
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106. TCSH(1)                                                   TCSH(1)
  3107.  
  3108.  
  3109.        v✓vi✓is✓si✓ib✓bl✓le✓eb✓be✓el✓ll✓l
  3110.                  use the visible bell (screen flash) rather  than
  3111.                  audible bell.
  3112.  
  3113.        w✓wa✓at✓tc✓ch✓h     list of events to watch.
  3114.  
  3115.        w✓wh✓ho✓o       format  string  for the printouts generated when
  3116.                  _✓w_✓a_✓t_✓c_✓h is set.
  3117.  
  3118.        w✓wo✓or✓rd✓dc✓ch✓ha✓ar✓rs✓s list of non-alphanumeric  characters  considered
  3119.                  part  of  a word for the purpose of the forward-
  3120.                  word, backward-word etc functions -- defaults to
  3121.                  "*?_-.[]~=".
  3122.  
  3123.  
  3124. N✓NE✓EW✓W S✓SP✓PE✓EC✓CI✓IA✓AL✓L A✓AL✓LI✓IA✓AS✓SE✓ES✓S
  3125.        _✓c_✓w_✓d_✓c_✓m_✓d    the command is run after every change of working
  3126.                  directory.
  3127.  
  3128.        _✓p_✓e_✓r_✓i_✓o_✓d_✓i_✓c  the command to be run every _✓t_✓p_✓e_✓r_✓i_✓o_✓d minutes.
  3129.  
  3130.        _✓p_✓r_✓e_✓c_✓m_✓d    the command to be run  prior  to  printing  each
  3131.                  prompt.
  3132.  
  3133.        _✓b_✓e_✓e_✓p_✓c_✓m_✓d   the  command  to be run every time _✓t_✓c_✓s_✓h wants to
  3134.                  echo the terminal bell.
  3135.  
  3136.  
  3137. S✓SE✓EE✓E A✓AL✓LS✓SO✓O
  3138.        xterm(1), twm(1), csh(1), chsh(1), termcap(5), termio(7)
  3139.  
  3140. B✓BU✓UG✓GS✓S
  3141.        The screen update for lines longer than the  screen  width
  3142.        is  very  poor  if  the terminal cannot move the cursor up
  3143.        (i.e. terminal type "dumb").
  3144.  
  3145.        I am certain that there are bugs.  Bugs  (preferably  with
  3146.        fixes)   should   be   sent  to  Christos  Zoulas  (chris-
  3147.        tos@ee.cornell.edu).
  3148.  
  3149.  
  3150. V✓VE✓ER✓RS✓SI✓IO✓ON✓N
  3151.        This man page documents tcsh 6.03.00 (Cornell) 92/11/20.
  3152.  
  3153.  
  3154. A✓AU✓UT✓TH✓HO✓OR✓RS✓S
  3155.        Ken Greer, HP Labs, 1981
  3156.        Wrote the command completion.
  3157.  
  3158.        Mike Ellis, Fairchild, 1983
  3159.        Added command name recognition/completion.
  3160.  
  3161.        Paul Placeway, Ohio State CIS dept., 1983
  3162.        Added the command line editor.
  3163.  
  3164.  
  3165.  
  3166. Cornell 6.03.00          20 November 1992                      48
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172. TCSH(1)                                                   TCSH(1)
  3173.  
  3174.  
  3175.        Rayan Zachariassen, University of Toronto, 1984
  3176.        Added the builtin _✓w_✓h_✓i_✓c_✓h feature to  the  editor,  and  the
  3177.        code  for  _✓l_✓s_✓-_✓F _✓.  Also numerous bug fixes, modifications,
  3178.        and performance enhancements.
  3179.  
  3180.        Chris Kingsley, Caltech
  3181.        Wrote the fast storage allocator routines (nmalloc.c).
  3182.  
  3183.        Karl Kleinpaste, CCI 1983-4
  3184.        Added special aliases, directory stack  extraction  stuff,
  3185.        login/logout  watch,  and  scheduled events.  Also came up
  3186.        with the idea of the new prompt format.
  3187.  
  3188.        Paul Placeway, Ohio State CIS dept., 1987
  3189.        Re-wrote the editor, cleaned up other code, and added  the
  3190.        prompt routines, added to the syntax for file name expres-
  3191.        sions, and sped up the shell some.
  3192.  
  3193.        Chris Grevstad, TRW, 1987
  3194.        Ported the 4.3 csh sources to tcsh.
  3195.  
  3196.        Christos S. Zoulas, Cornell U. EE dept., 1987-92
  3197.        ported tcsh to HPUX, and System V rel. 2 and 3 and wrote a
  3198.        SysV  version of getwd.c. Added SHORT_STRINGS support. New
  3199.        version of sh.glob.c.
  3200.  
  3201.        James J Dempsey, BBN, 1988, and Paul Placeway, OSU, 1988
  3202.        Re-ported tcsh to A/UX.
  3203.  
  3204.  
  3205. B✓BU✓UG✓GF✓FI✓IX✓XE✓ES✓S A✓AN✓ND✓D E✓EN✓NH✓HA✓AN✓NC✓CE✓EM✓ME✓EN✓NT✓TS✓S
  3206.        Harry C. Pulley, 1992
  3207.        Coherent port
  3208.  
  3209.        Andy Phillips, Mullard Space Science Lab U.K., 1992
  3210.        VMS-POSIX port.
  3211.  
  3212.        Beto Appleton, IBM Corp., 1992
  3213.        Walking process group fixes, lots of misc csh  bug  fixes,
  3214.        POSIX file tests, POSIX SIGHUP.
  3215.  
  3216.        Scott Bolte, Cray Computer Corp., 1992
  3217.        CSOS port.
  3218.  
  3219.        Kaveh R. Ghazi, Rutgers University, 1992
  3220.        Fixes and Ports for Tek, m88k, Titan, Masscomp.
  3221.  
  3222.        Mark Linderman, Cornell University, 1992
  3223.        OS/2 Port
  3224.  
  3225.        Mika Liljeberg, liljeber@kruuna.Helsinki.FI, 1992
  3226.        Linux port.
  3227.  
  3228.        Scott Krotz, Motorola, 1991
  3229.  
  3230.  
  3231.  
  3232. Cornell 6.03.00          20 November 1992                      49
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238. TCSH(1)                                                   TCSH(1)
  3239.  
  3240.  
  3241.        Minix port.
  3242.  
  3243.        David Dawes, Sydney U. Australia, Physics dept., 1991
  3244.        SVR4  job  control  fixes. (reverse pipeline startup code,
  3245.        and signal fixes).
  3246.  
  3247.        Jose Sousa, Interactive Systems Corp., 1991
  3248.        Extended vi fixes. Added delete command in vi.
  3249.  
  3250.        Marc Horowitz, MIT, 1991
  3251.        Ansification fixes, new exec hashing  code,  imake  fixes,
  3252.        where builtin.
  3253.  
  3254.        Eric Schnoebelen, Convex, 1990
  3255.        Convex support, lots of csh bug fixes, save and restore of
  3256.        directory stack.
  3257.  
  3258.        Jaap Vermeulen, Sequent, 1990-91
  3259.        Vi mode fixes, expand-line, window change fixes, ported to
  3260.        symmetry machines.
  3261.  
  3262.        Ron Flax, Apple, 1990
  3263.        Ported again to A/UX 2.0
  3264.  
  3265.        Dan Oscarsson, LTH Sweden, 1990
  3266.        NLS  support  and simulated for non NLS sites.  Correction
  3267.        of file names also handles the case when the / is replaced
  3268.        by  another  character.   The  editor does not switch into
  3269.        cbreak mode unless needed.  The shell will not use charac-
  3270.        ter attributes when output is not to a tty.
  3271.  
  3272.        Johan Widen, SICS Sweden, 1990
  3273.        Shell  level  variable,  mach support, correct-line, 8-bit
  3274.        printing.
  3275.  
  3276.        Matt Day, Sanyo Icon, 1990
  3277.        Added POSIX termio support; Fixed limit stuff for SysV.
  3278.  
  3279.        Hans J. Albertsson (Sun Sweden)
  3280.        Added the ampm variable handling, DING!, and the settc and
  3281.        telltc builtins.
  3282.  
  3283.        Michael Bloom
  3284.        Fixed some of the interrupt handling.
  3285.  
  3286.        Michael Fine, Digital Equipment Corp
  3287.        added the extended key support.
  3288.  
  3289.        Daniel Long, NNSC, 1988
  3290.        Added the wordchars variable.
  3291.  
  3292.        George  Hartzell,  MCD  Biology,  University  of Colorado-
  3293.        Boulder, 1988
  3294.        Fixed the always resetting to DEL bug.
  3295.  
  3296.  
  3297.  
  3298. Cornell 6.03.00          20 November 1992                      50
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304. TCSH(1)                                                   TCSH(1)
  3305.  
  3306.  
  3307.        Patrick Wolfe, Kuck and Associates, Inc., 1988
  3308.        Cleaned up VI mode and wrote the  new  editor  description
  3309.        (in section 1).
  3310.  
  3311.        Jak Kirman, 1988
  3312.        Fixed the SunOS 4 giant stack allocation bug.
  3313.  
  3314.        Bruce Robertson, Tektronix, 1989
  3315.        Fixed setting erase and kill (again).
  3316.  
  3317.        David C Lawrence, Rensselaer Polytechnic Institute, 1989
  3318.        Added  "autolist"  variable and code to list possibilities
  3319.        on ambiguous completion.
  3320.  
  3321.        Martin Boyer, Institut de recherche d'Hydro-Quebec,  1991.
  3322.        Modified  "autolist"  variable and code to give options on
  3323.        beeping behavior.  Modified the history search  to  search
  3324.        for the whole string from the beginning of the line to the
  3325.        cursor.
  3326.  
  3327.        Alec Wolman, DEC, 1989
  3328.        Added code to allow newlines in the prompt.
  3329.  
  3330.        Matt Landau, BBN, 1989
  3331.        Fixed YP bugs on Suns, added .tcshrc stuff.
  3332.  
  3333.        Ray Moody, Purdue Physics, 1989
  3334.        Added the code to do magic spacebar history expansion.
  3335.  
  3336.        Mordechai ????, Intel, 1989
  3337.        Re-arranged the printprompt() routine to use a switch(*cp)
  3338.        (rather  than  a  bunch of ifs), and added a few things to
  3339.        it.
  3340.  
  3341.        Josh Siegel, dspo.gov, 1989
  3342.        Fixed "fg-editor" and added the status  line  shell  vari-
  3343.        ables "sl" and "el".
  3344.  
  3345.        Karl Berry, UMB, 1989
  3346.        Fixed  a bug involving environ (in sh.func.c) on NeXT com-
  3347.        puters.
  3348.  
  3349.        Michael Greim, Universitaet des Saarlandes,  Saarbruecken,
  3350.        W-Germany,
  3351.        Fixed  the nested backquote bug (yes, you can do it; think
  3352.        about aliases)  in  4.2  csh.   This  fix  was  posted  to
  3353.        comp.bugs.4bsd.
  3354.  
  3355.        Kazuhiro  Honda, Department of Computer Science, Keio Uni-
  3356.        versity, 1989
  3357.        Added the code  for  automatic  spelling  correction,  the
  3358.        prompt3  stuff (the autocorrect prompt), and HOSTTYPE sym-
  3359.        bols for the Sony NEWS.
  3360.  
  3361.  
  3362.  
  3363.  
  3364. Cornell 6.03.00          20 November 1992                      51
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370. TCSH(1)                                                   TCSH(1)
  3371.  
  3372.  
  3373.        Paul Placeway, BBN, 1990
  3374.        Fixed character  redrawing  code  insert  bugs,  and  made
  3375.        redrawing code handle multiple character movement, insert,
  3376.        and delete (if it exists).  Fixed setting of SHELL.
  3377.  
  3378.        Per Hedeland, Ellemtel, Sweden, 1990
  3379.        Various bugfixes and improvements, e.g. in history  expan-
  3380.        sion, autolist, added autoexpand, updated the manual.
  3381.  
  3382. T✓TH✓HA✓AN✓NK✓KS✓S T✓TO✓O
  3383.        A  special  thanks  to: Bryan Dunlap, Clayton Elwell, Karl
  3384.        Kleinpaste, Bob Manson, Steve Romig, Diana  Smetters,  Bob
  3385.        Sutterfield,  Mark  Verber,  Elizabeth Zwicky, and all the
  3386.        other people at Ohio State for suggestions and  encourage-
  3387.        ment.
  3388.  
  3389.        Also,  thanks  to all the people on the net for putting up
  3390.        with, reporting bugs in, and suggesting new  additions  to
  3391.        the old tcsh editor.
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430. Cornell 6.03.00          20 November 1992                      52
  3431.  
  3432.  
  3433.